Since last time I finally showed you some code and mentioned storing examples on GitHub, let’s talk about underlying version control system and surrounding tools. Many of you probably used SVN as version control, especially if you worked for big corporation which are not that fast at adopting new stuff. Some of you perhaps switched to Git, maybe after leaving the corporation for smaller and smarter company. Well, that would be me right now :)
“Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency” says the homepage.
Git is distributed. Everyone has his own copy of the repository on a local machine. You can commit to it and fall back to earlier versions without relying on central server as in SVN. What about the Holy Trunk then? In typical workflow there is a base remote origin repository, where all changes are pulled, acting more or less like the SVN server and source of truth.
Git is fast. Contrary to SVN, each time you change a file, Git creates new snapshot of this file instead of delta between two files and adjusts the commit tree accordingly. This can take up a bit more space, but Read the rest of this entry »