TL;DR

  • Git is an incredibly powerful tool, but it can be hard to learn.
  • It helps to know something about graph theory, especially with regard to reachability.
  • And to know what Git's references are.
  • Because references make commits reachable.
    (Only got time to read one page? Make it that one.)
  • Once you understand that, you won't waste so much time backing up your entire repository, like I did.
  • I like GitX, and you can use it (or another visualizer) to bootstrap your knowledge of Git.
  • I've got a few recipes for testing out merges that give you an "undo" option.
  • And I've attempted to explain rebase as simply as I can.