A beginner's guide to Git version control
Git is one of those things that people (including myself) have frequently derided for being &quot;unintuitive&quot;, &quot;full of footguns&quot;, etc.<p>But after looking at other source control options, I find it to be an absolute joy to use -- even for very complex tasks. The VC problem itself is where the complexity lies. Any tool that deals with collaborative working on document will present the same issues that Git does. Maybe worse.<p>Be thankful that you can use any tool you want to create plain-text diffs; that git performs operations quickly; that resets, undo&#x27;s, etc are possible; that the precise history (both of the actual state and the steps taken to get there) is entirely legible; that each command performs a single, well-defined, and well documented atomic operation; that the tool is extensible, command-line script-able, usable locally, free; that it keeps the size of a repository small; that it is scalable across any number of contributors working simultaneously.<p>Some, all, or none of these may be true with other tools.<p>Anyone ever had to do a diff of a Microsoft Visio document by hand? Anyone had to manually type in the name of a document and its revision by hand into a web form? Anyone ever spent an afternoon working on a document, only to realize that someone else already made the changes you made but forgot to update the filaname which caused their changes not to be visible to you? Programmers are spoiled with the best tools in version control. People in other domains are doing this, <i>without even knowing that they are doing this</i>. They are making commits, merging, rebasing, etc.. without even having a word to describe it.