If you haven't used Git, or a similar version control tool (CVS and Subversion are some other examples), you might be wondering what it is and why we should use it. To explain this, let's look back to one of the system administration problems we talked about in Chapter 1, Introduction to Puppet: the problem of tracking code changes.
Even if you're the only person who works on a piece of source code (for example, Puppet manifests), it's still useful to be able to see what changes you made, and when. For example, you might remember that you fixed a bug last week, but not exactly how, and it would be handy to be able to see exactly what lines in which file were changed.
When you're working on code with others, you need a way to communicate changes to the rest of the team. A version control tool such as Git not only tracks everyone's changes, but lets you record a message about what you did and why. For example, a change might be marked with the following message:
Author...