Github graphs not updating
But even beginners are quickly confronted with hideous internal details.
In theory, there is the “plumbing” and “the porcelain” – but you’d better be a plumber to know how to work the porcelain.
Git is the source code version control system that is rapidly becoming the standard for open source projects.
It has a powerful distributed model which allows advanced users to do tricky things with branches, and rewriting history.
The most spectacular example of this is the command “git am”, which as far as I can tell, is something Linus hacked up and forced into the main codebase to solve a problem he was having one night.
It combines email reading with patch applying, and thus uses a different patch syntax (specifically, one with email headers at the top). They describe the commands from the perspective of a computer scientist, not a user.
The information model is complicated – and you need to know all of it.
Git dumps the burden of understanding complex version control on everyone – while making the maintainer’s job easier.
Why would you do this to new contributors – those with nothing invested in the project, and every incentive to throw their hands up and leave?
But the shortcut for “git branch” combined with “git checkout”? Specifying filenames completely changes the semantics of some commands (“git commit” ignores local, unstaged changes in foo.txt; “git commit foo.txt” doesn’t).
The various options of “git reset” do completely different things.