The diagram doesn’t show one interesting thing about Git: HEAD usually refers to a branch, not to a commit. This is transparent in most cases, because Git usually just follows that branch’s pointer to get to the commit. But Git uses this when you create a new commit with git commit. It only updates the branch that HEAD points to to point to the new commit – it doesn’t update all branches that happened to be on the old commit.
The visualization could explain this aspect of Git’s model if the git checkout example displayed a normal HEAD and a detached HEAD like this:
This is quite spectacular, thanks! Extra bonus points for a working history in the command line and nice hints, like ‘enter a branch name …’
The diagram doesn’t show one interesting thing about Git:
HEADusually refers to a branch, not to a commit. This is transparent in most cases, because Git usually just follows that branch’s pointer to get to the commit. But Git uses this when you create a new commit withgit commit. It only updates the branch thatHEADpoints to to point to the new commit – it doesn’t update all branches that happened to be on the old commit.The visualization could explain this aspect of Git’s model if the
git checkoutexample displayed a normalHEADand a detachedHEADlike this: