Git is a wonderful tool that many developers use multiple times every single day. Its wonderful feature set derives from a very general model for talking about data and changes made to this data. This general model is very expressive for the task of “versioning source control” but consequently has a relatively large interface. Moreover, the most commonly used interface (i.e. at the command line) is notoriously opaque. Any non-trivial task can quickly result in a panic and a series of arcane StackOverflow posts.
I would like to lay out the following plan for studying Git so that you are better equipped to handle these challenges when you come upon them. It will make you a better developer who can communicate even more value than you already do when working on a team (and with your future self).
githowever you find natural for some time.
When you start to get a feeling for how
gitworks and have experienced some situations that were out of your depth, watch the following videos:
Technical guide: Knowledge is Power: Getting out of trouble by understanding Git by Steve Smith
Style guide: Deliberate Git
These two videos are the best I’ve found on understanding the best way to use Git both locally and in a team. Once you have grokked these you will be well-equipped to understand more advanced material about deeper internals to apply to those sticky situations. I would recommend sharing this post with every developer you know so they can share in your understanding.
Bonus tip: check out magit, which is a “plugin” for Emacs. Even if you don’t want to use Emacs as your main editor,
magit is worth using just to see how fun
git becomes with a well-designed interface.
- List of nice tutorials