Why Git ? Fresh perspectives
There are already lots of articles and even books on using Git and why it’s better than other source version control solutions. One of the things I recommend is reading the Git Community Book.
Now, I’m still a newbie in using Git, but I did use CVS and SVN over the years. I won’t bore you with the technical details which I may not know exactly.
I used Git recently at GeekMeet24 (and pushed Calin towards it too
) and looking back I see the main advantages as those towards increasing productivity:
1. Get up and running fast.
You NEED some kind of revision control. If you’re not using one for even a small project you’re not really a good developer.
Sadly, there still are developers not always using revision control, but my view is that they find their current solution too cumbersome/hard to set up for any small project and that’s why they don’t use it.
In Git this means going to a folder and executing “git init”, I dare you to configure a svn repository faster.
2. Work disconnected
While it’s hard to find a place without an internet connection these days, and some of us carry our 3G modems everywhere with us, it’s still good to know you don’t need “the server” for every little thing you do. It also makes Git faster but really the biggest advantage of being able to work offline is the next one:
3. Be more confident/agile
In SVN for example, all your commits/branches go to “the central server”. This automatically makes you commit and branch less because you either are not confident to show your half-finished work to your colleagues who have access to the repository; or because you don’t want to clutter the central branch list with many experimental branches. The result is less information about the progress of the project, about what changed in what order and maybe even losing some work or source code.
With Git you can continue to commit early and often, locally. All the change/progress information is preserved but you don’t need to push to a central repository. This makes you more confident in yourself (since you’re only committing) locally but also in the end you have much better information about the code. You’re also using branches more effectively because you aren’t afraid to do anything locally and can organize yourself better. And if just one of the other developers wants to look at your unfinished work, he can just pull the changes from your repository, no need to bother everyone.
I think this is one of the best “features” of Git but also the one which really requires a change in mindset and not only technology. Sadly, technology is the easiest thing to change.
To continue our training in Git and to start to teach others I have already proposed to Valentin Bora, Horia Dragomir, Calin Don and Mihai Oaida that we should hold some presentation/workshop on Git at the next GeekMeet in Timisoara. Feel free to add any suggestions
Yeah, but playing with branches on a live product is more fun. I remember the nights spent on merging massive amounts of commits from one branch to another, after the client finally understood that the dev and prod branch were growing too much apart. And no, rebasing was not an option.
I would like to give a hand on wrapping up a good presentation on Git.
On a personal note, I think that working only one branch raises your awareness to write “working software” ( http://en.wikipedia.org/wiki/Agile_Manifesto ) backed up by good tests.
The more the better. We were also thinking of sharing some personal experiences about revision control. Good/bad, git/svn/cvs/hg, I think it would be interesting to hear lots of actual experiences.
Of course “working software” is good, but for any big refactoring I’d like to have a clear history and not influence other developers until needed.
It’s viral…
Remember this blog?