Interestingly enough, no one mentioned the use of branching.
Affiliates are a great way to maintain a healthy chest by constantly checking everything you do, broken or not. Think of it as undoing a new timeline for a code; the main timeline (trunk) strokes and always works; branches can be any state at all, without affecting the trunk.
This allows you to commit early and often, without worrying about confusing someone else, and ensures that you would never have I-gone-too-far-and-not-reverse-this moment when developing what something new or oh lord-I lost-a week if your local drive should die. (It goes without saying that your repository must live somewhere, which is often backed up!)
Once your code works, you can merge the branch back into the trunk, and now the trunk receives your new code; now the new branches from the chest have all the code to process.
This is git's enormous appeal to many: it's very easy to fork and merge, which makes it easy to just drop a new branch or even branch branches when you need them. Even CVS can perform branching and merging, although it is much more cumbersome.
Joe mcmahon
source share