News for hackers. Stuff that matters.
Re:Flight rules for Git by smacktoward on Tuesday October 16, 2018 @11:14AM (#18230036)
It never ceases to amaze me that:

1. Git, a software product with more footguns per square inch of user-exposed surface than any I've ever encountered, ended up winning the distributed VCS sweepstakes; and

2. Even now, more than five years after it was clear to everyone that Git had won, there is absolutely no momentum to go back and clean it up to remove any of those footguns. All we get instead are increasingly shiny GUIs to hide them under, and well-meaning blog posts advising you on which is the best kind of tourniquet to apply when you trigger one of the aforementioned footguns.

Sigh.

Re:Flight rules for Git by samontar on Tuesday October 16, 2018 @02:16PM (#18231738)
Honestly have found it nothing but a pleasure to use. Not at all upset by the UI. It’s fine. Hg is fine. They’re easy enough to use that I never think about it and I rebase interactive daily and am comfortable with the reflog. It surprisingly didn’t take that long.

I’ve never found myself backed into a corner and I suspect this is part of its success: some people have codebases where it’s a problem (branch names which are files, for instances) but most people don’t encounter this sort of thing and it works just fine.

Re:Flight rules for Git by finnthehuman on Tuesday October 16, 2018 @12:03PM (#18230454)
It’s basically a manifestation of programmer arrogance that they’re just too damn smart to encounter a software learning curve again.

Ever sat through user training on microsoft office? How to use email? The weird one-off enterprise apps that nobody else has ever heard of?

They’re unbearably tedious to users that can get by in a new tool with a 5 minute crash course, intuition and light googling.

Then git shows up and has the audacity to ask professionals to learn its mental model.

Once you do the interface isn’t great, but not particularly esoteric. The problem isn’t that users see dense-sounding things like “directed acyclic graph of revisions”, it’s that they assume they can competently manipulate one without knowing what that means.

I do think the interface could use cleanup, but can any ammount of cleanup prevent needing to know the mental model of git?

Re:Flight rules for Git by masklinn on Tuesday October 16, 2018 @12:29PM (#18230698)
Bullshit. The "mental model" has never been the issue with git, it's always been that the UI is garbage and a giant abstraction leak, requiring knowing the implementation details of the commands and the storage model to work with and step over footguns. Because rather than an actual, designed, considered UI, the porcelain is crummy shortcuts on sets of operations on the underlying storage (not mental) model.

Mercurial has the same "DAG of revisions" model as git, and works just fine, because it has a good UI.

Darcs has a more unusual mental model than git, and works just fine, because it has a good UI.

Re:Flight rules for Git by jgraham on Tuesday October 16, 2018 @01:29PM (#18231293)
> Mercurial has the same "DAG of revisions" model as git, and works just fine, because it has a good UI.

People keep saying this, and this keeps not matching my experience of helping people with VCS issues at Mozilla.

Mercurial's model is roughly "append only list of commits, that separately form a DAG". This list model is leaked all over the place. For example the default `hg log` view just dumps that list rather than telling you anything about the history of the current working copy. To get that you need to add -f, which of course in most contexts means "do something unsafe". Worse, the list model is exposed in the local revision ids, which are prominently presented in the UI, and users have to learn that these ids aren't sharable with other users when discussing a revision. Also the most prominent "symbolic ref" in mercurial is "tip" which means "commit at the last position in the internal list", and so is sometimes the current head, and other times is some random commit from the remote.

Giving people help in mercurial is also super-challenging because, unless you are in some controlled environment, the first question is always "which extensions do you have enabled" and for complex tasks the next step is often "you should enable and learn to use <some extension>".

Which isn't to say that Mercurial is overall particuarly bad. There are some areas in which it's really an improvement over git (revset specifiers are pretty awesome, for example). But I often feel like praise for the UI comes from people who have internalised its flaws, and is repeated by people who haven't actually used it, but dislike git and are happy to accept something that confirms their preconceptions.

Re:Flight rules for Git by meuk on Tuesday October 16, 2018 @02:40PM (#18231997)
The biggest leaking abstraction of git IMO, are commits: they equate a set of changes with the state of the repo after said changes. So if there are multiple commits, reverting a commit is ambiguous. Does it revert the state of the repository to the state before the commit, or does it revert the changes in the commit?

There are a couple more flaws. The commandline is not very consistent, and the complete model is way too complicated IMHO. I can work with it now, but it took me a long time to grasp all of the concepts that I need - without feeling the need for distibuted version control. About that: It's kind of ironic that git is hailed for being distributed, but everyone just uses github, a centralized system.

Re:Flight rules for Git by cesarb on Tuesday October 16, 2018 @02:57PM (#18232138)
Just to be pedantic, a commit is actually "the state of the repo after said changes" plus "the commit(s) before said changes" (which allows one to recover the "set of changes" by comparing the before/after states).
Re:Flight rules for Git by meuk on Tuesday October 16, 2018 @03:07PM (#18232211)
I don't think that's true. At least, not if you revert something - it reverts only the changes introduced in that commit. (That there is confusion - or even discussion possible - is exactly my point: the abstraction is leaky at worst, and confusing at best).

Edit: You're right, but my point was that the revert command treats a commit like a set of changes, not like the state of of a repo (since you can't revert the state of a repo, but you can revert changes).

Re:Flight rules for Git by cesarb on Tuesday October 16, 2018 @03:30PM (#18232423)
See for yourself: do a "git cat-file commit HEAD" on any repository. The "tree" line is the current state, the "parent" line(s) are the preceding commit(s). That command shows everything git has recorded for any commit (you can similarly use "git ls-tree <sha1>" to show everything git has recorded for any tree, or "git cat-file blob <sha1>" to show the contents of a file from the tree).
Re:Flight rules for Git by meuk on Tuesday October 16, 2018 @03:48PM (#18232578)
You're right from a technical perspective. What I meant that as an abstraction, it serves a double purpose (it represents both a node and an edge in the DAG, and it depends on the command that you use which interpretation is right).

If you checkout a commit, the commit represents the state of the repository. If you revert a commit, the commit represents a set of changes.

Re:Flight rules for Git by tome on Tuesday October 16, 2018 @12:12PM (#18230552)
> I do think the interface could use cleanup, but can any ammount of cleanup prevent needing to know the mental model of git?

Git's interface is far, far more complicated than its model. Personally I spent years not learning about the model because I thought it would be as complicated as the interface. When I realised that the model is basically as simple as what you get when you view the "network" on GitHub then I started loving Git.

Re:Flight rules for Git by seba_dos1 on Tuesday October 16, 2018 @12:34PM (#18230744)
Exactly this. Git is pretty easy; at the same time, using Git isn't. If you skip learning the easy mental model, all you have left is hard interface, so in result you just struggle, because you can't even rely on your intuition to get how things work there.
Re:Flight rules for Git by amag on Tuesday October 16, 2018 @02:10PM (#18231679)
I've found that adding my own aliases that sound more akin to what I'm trying to achieve has helped greatly with this, e.g. I have 'discard' as an alias for 'checkout --'.
Re:Flight rules for Git by wild_preference on Tuesday October 16, 2018 @01:56PM (#18231534)
> It’s basically a manifestation of programmer arrogance that they’re just too damn smart to encounter a software learning curve again.

It's fun to be cynical, but surely this is just yet another example of how hard it is to "just change" something for all sorts of reasons.

It's funny that you bring up hubris when the pinnacle of developer hubris is "surely it can't be too hard to {build it, change it, replace it} -- I could do it!"

Re:Flight rules for Git by kurtisc on Tuesday October 16, 2018 @04:39PM (#18233039)
Conversely, no other industry places so much focus on making sure that tools for professionals are easy for beginners to use, often at the expense of features.
Re:Flight rules for Git by chrisseaton on Tuesday October 16, 2018 @11:43AM (#18230261)
What 'footguns' are there? I find it pleasingly hard to accidentally delete anything, or get myself into any kind of corner when using Git. What am I missing?
Re:Flight rules for Git by crooked-v on Tuesday October 16, 2018 @12:25PM (#18230655)
Consider `git checkout` and having a file called `master` at the root level of the repo.
Re:Flight rules for Git by CJefferson on Tuesday October 16, 2018 @03:18PM (#18232328)
Further, what does `git checkout a/b` do?

* Checkout a file called a/b

* Checkout branch b from remote a

* Checkout a local branch called a/b

I've seen people end up with local branches with names like 'upstream/mybranch', then get super-confused about how these branches aren't "upstream". git should really ban local branches with a / in their name.

Re:Flight rules for Git by bicolao on Tuesday October 16, 2018 @01:39PM (#18231405)
It's a bug that "git checkout" does not complain in this case. I'll try to fix or report it.
Re:Flight rules for Git by dfabulich on Tuesday October 16, 2018 @01:43PM (#18231442)
Re:Flight rules for Git by chopin on Wednesday October 17, 2018 @05:31AM (#18237506)
Though I agree with you, a warning could be issued.
Re:Flight rules for Git by booleandilemma on Tuesday October 16, 2018 @12:57PM (#18230980)
Sounds like an edge case. This isn’t really a problem with Git per se.
Re:Flight rules for Git by crooked-v on Tuesday October 16, 2018 @01:05PM (#18231076)
A single command doing two completely different things arbitrarily depending on file matches isn't an "edge case".
Re:Flight rules for Git by lixtra on Tuesday October 16, 2018 @01:31PM (#18231315)
But this very common for many tools:

  touch -- -l
  ls *
Re:Flight rules for Git by mmt on Wednesday October 17, 2018 @11:21AM (#18239941)
However, if you run both commands consistently, nothing untoward occurs:

  touch -- -l
  ls -- *
The fact that you have to use a double-hyphen flag to create a file with a name starting with a hyphen is a strong indication that this situation is an edge case.
Re:Flight rules for Git by lixtra on Wednesday October 17, 2018 @04:11PM (#18243277)
And git handles the edge case the same way. That was my point.

  rm master
  git checkout -- master
  git checkout a1b1
  git checkout master -- master
all works as expected
Re:Flight rules for Git by mmt on Wednesday October 17, 2018 @09:15PM (#18245187)
Not quite. I believe the point is that it's not an edge case, since "master" isn't a particularly unusual name, not in the Unix tradition, nor, AFAIK, on any other OS.

You'll note that, for example, your "rm" didn't require a double-hyphen.

The OC's point (and maybe the GP's point [1]), ultimately, is about git command syntax ambiguity. With traditional Unix commands, there's not much ambiguity. At worst, there's merely no obvious way to pass an argument that's a filename starting with a hyphen. The question "what does 'ls -l' do?" would not plausibly have an answer of "output '-l' if a directory entry with that name exists" in addition to "output a long listing of all directory entries".

[1] Does git actually behave differently based on the existence of a directory entry named "master" or does it merely require extra effort to work with such an entry, which would actually be directly analagous to filenames beginning with a hyphen?

Re:Flight rules for Git by crooked-v on Tuesday October 16, 2018 @02:19PM (#18231781)
That's bad too.
Re:Flight rules for Git by lixtra on Tuesday October 16, 2018 @11:46AM (#18230282)
Explain detached head like i’m 5 years old.
Re:Flight rules for Git by xyzzy_plugh on Tuesday October 16, 2018 @11:54AM (#18230359)
Detached HEAD isn't complicated. It simply means there is nothing tracking the current line of work beyond the commit shas themselves. No branch is updated when you make commits.

Conversely, attached HEAD means a branch is being updated whenever you make a commit, e.g. when you make commits on your local master.

Re:Flight rules for Git by lixtra on Tuesday October 16, 2018 @12:27PM (#18230678)
Oh, I see. I created this great patch and commited it. Then I wanted to push it, but it reported some strange error.

I checked out master but now my commit is no longer there. HELP!

Can I somehow push my changes to you so you can fix it?

Ah let's intuitively try:

git log --graph --decorate $(git rev-list -g --all)

For comparisson:

- mercurial would show your commit all the time, no matter what currently is checked out.

- Only when you push, you have to force it, to create a new head in the remote repository because most workflows expect you to merge heads locally.

Re:Flight rules for Git by seba_dos1 on Tuesday October 16, 2018 @12:40PM (#18230806)
All I get from this comment is that "git reflog" should be one of the first things taught about git :P
Re:Flight rules for Git by lixtra on Tuesday October 16, 2018 @12:54PM (#18230943)
Maybe reflog would help. Unfortunately most cheat sheets I saw don't mention it.
Re:Flight rules for Git by craftyguy on Tuesday October 16, 2018 @02:01PM (#18231592)
As other comments here have suggested, git cheatsheets should be ignored if you are learning git.
Re:Flight rules for Git by iainmerrick on Tuesday October 16, 2018 @12:20PM (#18230616)
But why would I get into that state, and how do I get out without losing my work? Neither of those is obvious.
Re:Flight rules for Git by tome on Tuesday October 16, 2018 @12:22PM (#18230633)
> how do I get out without losing my work?

When you move out of detached head state by checking out another branch Git tells you how to save your work to a branch.

Re:Flight rules for Git by iainmerrick on Tuesday October 16, 2018 @12:49PM (#18230905)
It could usefully say that when you do a “git status” when you’re in a detached state, instead of just saying “detached HEAD” and expecting you to figure it out (or google for it).

It could very usefully try harder to avoid getting into that state in the first place.

Re:Flight rules for Git by annabellish on Tuesday October 16, 2018 @12:58PM (#18230993)
>It could very usefully try harder to avoid getting into that state in the first place.

Am I missing something here? How do you get into a detached HEAD state without explicitly taking an obviously weird action, like finding and checkout out a commit hash instead of a branch, and why would it make sense for git to not be in a detached HEAD state should you do that?

Re:Flight rules for Git by jamescostian on Tuesday October 16, 2018 @01:24PM (#18231248)
Imagine someone does task X but they do it very poorly and in master. You want to get rid of their last few commits (without a force push).

Most people don't think about doing a hard reset to the last good commit, and then soft resetting to HEAD~. Instead, they just "git checkout $LAST_GOOD_COMMIT". And afterwards they may even continue by working with a detached HEAD

Re:Flight rules for Git by mappu on Tuesday October 16, 2018 @05:08PM (#18233282)
> an obviously weird action, like finding and checkout out a commit hash instead of a branch

But this isn't an obviously weird action? It happens all the time when you need to branch off from a previous point.

Maybe you're unexpectedly releasing a hotfix, maybe your current development is going in a bad direction, maybe you need to test something against a previous state.

Re:Flight rules for Git by WorldMaker on Tuesday October 16, 2018 @02:37PM (#18231967)
Rebase has several cases that will drop you into a detached HEAD. Rebase has gotten better at warning you when it is happening, and much better at telling you what your next steps are in that situation (such as git rebase abort), at least, but it still does it.

Several times that I've helped junior developer out of a detached HEAD state, when I asked what they thought they were doing before it happened, the answer was "I was just doing my normal rebase before..."

Re:Flight rules for Git by Latty on Tuesday October 16, 2018 @07:22PM (#18234161)
It is (or at least used to be) pretty easy to end up with a detached HEAD when working with submodules and aren't sure what you are doing. It definitely didn't need an "obviously weird" action.
Re:Flight rules for Git by tome on Tuesday October 16, 2018 @12:52PM (#18230928)
> It could usefully say that when you do a “git status” when you’re in a detached state

That's a great idea and it really confuses me why they don't add obviously useful things to the interface.

Re:Flight rules for Git by XCabbage on Tuesday October 16, 2018 @11:50AM (#18230317)
Why should he have to? It's irrelevant to the point he's making, since a tool being conceptually difficult is not the same thing as it having footguns.
Re:Flight rules for Git by masklinn on Tuesday October 16, 2018 @12:32PM (#18230732)
> a tool being conceptually difficult is not the same thing as it having footguns.

But the tool is not conceptually difficult. All the difficulty of git is in the trap its "UI" creates for no reason. The concepts are easy. I taught Darcs to a frontend/flash developer 15 years ago, and it's not because I'm a great teacher.

Re:Flight rules for Git by chrisseaton on Tuesday October 16, 2018 @12:59PM (#18231001)
I get that could be confusing, but there's no 'gun' there, is there? You may have to move your commit, but nothing been damaged?
Re:Flight rules for Git by lixtra on Tuesday October 16, 2018 @01:39PM (#18231397)
Time wasted is equivalent to damage.

Every digital damage can be undone by wasting enough time.

Re:Flight rules for Git by tome on Tuesday October 16, 2018 @12:04PM (#18230469)
If you're in detached head then `checkout -b the_detached_head_i_just_had` and the fact that you were in detached head becomes irrelevant.
Re:Flight rules for Git by mikestew on Tuesday October 16, 2018 @11:54AM (#18230361)
Maybe five year olds shouldn't be mucking with your source code.

Detached is just that: you can party on it all you want, but it's not going to go anywhere when you commit unless you go out of your way.

Re:Flight rules for Git by feintruled on Tuesday October 16, 2018 @11:47AM (#18230290)
One consolation with Git, you know it is almost always possible to recover from any mistake. Theoretically anyway. I think we've all been in that situation where a team of engineers are huddling round a monitor strategizing about just how to undo the snafu of the day, brainstorming increasingly extreme solutions.
Re:Flight rules for Git by mikro2nd on Tuesday October 16, 2018 @12:06PM (#18230484)
You're probably right. I, though, know just enough GIT to get by. In every case where things have gone seriously pear-shaped, it's just quicker -- like days quicker -- for me just to throw everything to the wind and clone the repo again. Reading up how to do the proper thing a recover will just take me order-of-magnitude longer, and frankly, I don't have the time.

Just think how many person-hours were wasted by that team huddled around the monitor...

GIT: The Swiss-Army Chainsaw of Version Management.

Re:Flight rules for Git by habitue on Tuesday October 16, 2018 @12:20PM (#18230619)
Once you understand a few basic things like the underlying git model, and what the reflog is, you can basically get out of any situation. Totally worth the time to learn, it'll save you a ton of time
Re:Flight rules for Git by bhj on Tuesday October 16, 2018 @02:45PM (#18232036)
The interface should be what saves a ton of time, and should not expose the underlying technical model (especially because that model may change at some point)
Re:Flight rules for Git by habitue on Tuesday October 16, 2018 @03:52PM (#18232627)
I don't think it's reasonable at this point that git's underlying model ever changes substantially. Essentially, it is the interface that's stable over time.

It's also the easiest way to understand git.

You could learn to read by memorizing the shapes of thousands of words without learning the alphabet or how it matches up to sounds. I'm sure people have done it. But the failure mode when encountering a new word is complete and utter bewilderment that this new shape is unfamiliar, rather than a graceful degradation you get if you understand the alphabet. The same is true of git.

Re:Flight rules for Git by zaphar on Wednesday October 17, 2018 @09:28AM (#18238704)
This is funny because the lack of consistency in Git's user interface forces you into memorizing the shapes of specific words (commands and arguments). To spell it's language.

The UI does a remarkably good job of hiding the elegant underpinnings from you.

Re:Flight rules for Git by majewsky on Tuesday October 23, 2018 @04:52AM (#18281802)
> it's just quicker -- like days quicker -- for me just to throw everything to the wind and clone the repo again

In this case, I have a single suggestion for you: Give the following extra arguments to git clone.

  --reference /path/to/existing/clone/ --dissociate
This will download objects from your existing clone rather than from the remote repository, thus saving you a great deal of bandwidth if your repo is appreciably large. Also, this operation is absolutely safe. It will only copy objects over into the new clone that are referenced in the remote repository.
Re:Flight rules for Git by rtkwe on Tuesday October 16, 2018 @12:04PM (#18230461)
Every time I start to dig super deep on problems like this I stop for a second and wonder "just how important is it I fix this error" and "can this be solved by just paving over my local and reapplying my changes...". Most of the time the answer is not extremely and yes.
Re:Flight rules for Git by plorkyeran on Tuesday October 16, 2018 @06:18PM (#18233777)
It's true that for any given problem, learning how to fix it probably isn't worth the time. I've found the long-term benefits of taking the time to learn how to fix every problem I've run into (and importantly, understand what the things I'm doing to fix it do) to be very worth it, though. Over time I've had to google how to do fewer and fewer things, and when I do still need to google something it takes me much less time to understand the answer and how to apply it.

As a polygot developer working in multiple languages, editors and ecosystems, git has been the one tool that I'm always using, and that makes it always worth investing more time into learning how to use it better.

Re:Flight rules for Git by krinchan on Tuesday October 16, 2018 @10:50PM (#18235749)
Same really. I'm considered a "git expert" at work and the extent of my expertise is:

"This merge went completely sideways. But I haven't pushed anything."

"Okay, do this to export the commits you made as a patch file. Move those somewhere safe. Delete your repo. Reclone. Apply the patches. Commit. Start merge over again."

Also I can recognize whatever that weird error message is that means someone deleted a file in one branch and I edited it in another. Usually results in just "git rm (file); and git merge --continue".

Re:Flight rules for Git by majewsky on Tuesday October 23, 2018 @05:30AM (#18281960)
> This merge went completely sideways.

  git merge --abort
Re:Flight rules for Git by fizixer on Tuesday October 16, 2018 @03:30PM (#18232421)
Revision control, in general, turns 2D code into 3D code. Git turns 2D code into 4D code. With great power comes great responsibility. And you have to impose rules on yourself regarding which areas of that power landscape you should explore and which areas to stay away from (to keep your sanity, productivity, keep the complexity under control, etc, etc).

Flight rules, process workflows, protocols (both network protocols, and protocols of mission critical human activity), they all belong to the idea of limiting yourself to a set pattern of activity when dealing with something that can practically give you infinite possibilities. Because infinite possibilities give decision fatigue and analysis paralysis.

By 2D code I mean code in a text editor: the two dimensions of lines and columns.

By 3D code I mean: lines, columns, time (meaning commit timestamps)

By 4D code I mean: lines, columns, time, time travel (you can go back to older commits and rewrite your revision history).

Re:Flight rules for Git by marcodave on Tuesday October 16, 2018 @11:23AM (#18230104)
But one of those shiny GUI was called GitHub, and it was the shiniest of the shiniest, so much that it make git usage ridiculously easy. At least on my experience.
Re:Flight rules for Git by smacktoward on Tuesday October 16, 2018 @11:26AM (#18230118)
Git is very easy to use, right up to the moment when it really really is not.
Re:Flight rules for Git by mikestew on Tuesday October 16, 2018 @11:52AM (#18230340)
Every SCM/SCC/VCS has a wall you'll hit eventually. Whoopsie, the merge went wrong. Whoopsie, didn't mean to check that in. Whoopsie,... Most version control systems will allow you to crash through that wall with a little damage, might slow you down a little, but you'll keep going.

git's wall is thick, made of brick and reinforced concrete, and you'll be heading toward it at 200kph. You'll get going again eventually, once the metaphoric car gets glued back together.

Non-metaphorically, my experience has been that with SVN, Mercurial, et. al., a few quick web searches and I'm on my way. With git, "wait a minute...run that by me again?" I've used git for going on a decade, and now that I'm in an SVN shop I do sorely miss it. But, man, it's got some sharp edges.

Re:Flight rules for Git by kevin_thibedeau on Tuesday October 16, 2018 @12:26PM (#18230660)
I've never had to manually edit merge history in Git like SVN forces when merging complicated branch hierarchies. SVN is basically a half implemented VCS where the guts are exposed and you tread lightly whenever doing anything the original design didn't anticipate like ubiquitous merging.
Re:Flight rules for Git by smacktoward on Tuesday October 16, 2018 @12:00PM (#18230421)
This is a good metaphorical version of what it's like introducing new people to Git: https://www.youtube.com/watch?v=92wPOsuHZ9Y
Re:Flight rules for Git by saagarjha on Tuesday October 16, 2018 @12:56PM (#18230972)
GitHub really does nothing to make day-to-day usage of Git easy–it doesn't solve merge conflicts. It doesn't allow you to rebase commits. It doesn't find commits that you inadvertently wrote out of the branch. What it really does is provide a nice GUI around the current state of the repository and add some collaborative tools.
Re:Flight rules for Git by hrktb on Tuesday October 16, 2018 @01:48PM (#18231476)
The big help for me at the time was the ease to navigate files accross merges, branches, commits, and share a specific point to anyone through a simple URL.

Up until this day navigating code feels more natural on the site that on native apps like sourcetree. I really miss the ease to see the same file from two different branches or commits, the feature might be there in native apps but I just couldn’t find it.

Re:Flight rules for Git by nine_k on Tuesday October 16, 2018 @02:40PM (#18231998)
No, the shiny and efficient tool for daily git work is called magit, it runs on the Emacs platform (which also features a rather nice text editor).
Re:Flight rules for Git by mclehman on Wednesday October 17, 2018 @06:38PM (#18244438)
> (which also features a rather nice text editor).

I know, right? This 'evil' thing is going places.

Re:Flight rules for Git by rw_grim on Tuesday October 16, 2018 @04:11PM (#18232818)
They're have been attempts at cleaning it up; cogito, tig, and gitless. Why they haven't caught on, we'll never know...
Re:Flight rules for Git by pjmlp on Tuesday October 16, 2018 @11:45AM (#18230271)
Because Linux, basically.
Re:Flight rules for Git by colonelpopcorn on Tuesday October 16, 2018 @02:18PM (#18231770)
I was surprised there was no mention of how to get out of a HEAD detached state. That seems to be my number one "oops, now I've got to delete and re-clone" problem.
Re:Flight rules for Git by theamk on Tuesday October 16, 2018 @05:14PM (#18233331)
but... "git checkout master" and you are all done! why would you re-clone for that?
Re:Flight rules for Git by imhelpingu on Tuesday October 16, 2018 @03:27PM (#18232400)
Can you give an example of a "footgun" that doesn't involve using a --force flag or "git reset --hard" without understanding what they do?
Re:Flight rules for Git by liveoneggs on Tuesday October 16, 2018 @07:09PM (#18234075)
"No technology can ever be too arcane or complicated for the black t-shirt crowd." <- not really Linus but hey