I want to start using git at work instead of svn but advocate using it my colleagues merely hum and nod but don't seem convinced enough to make the switch. How can I tip them over the edge?
Is svn working for them? What problems are they having with svn that git would solve for them? If there isn't a compelling reason, you're probably better off sticking with svn. OTOH you could use git personally as a front-end to svn. If your coworkers see an improvement in your development workflow then it might get them to switch. And if I were you, I'd let them know how much easier and faster development is for you on git.
I am using git-svn daily at work. It gives me benefits in that I can fork or stash away changes and continue later on experiments. I can tidy up my patches before i dcommit.
What would take this to the next level is being able to have colleagues pull from my repo, and me from theirs.
Also, git-svn is not that good with svn branches. Following new svn branches pretty much require a new git svn clone, unless im missing something.
Advantages to push: Git is quick, inspecting a bug in a past release is easy. You have the revisions locally and can easily check out that release, or even create a shared clone to get a new working dir. There are similar advantages in doing 'git blame' when figuring out why some code is the way it is.
At both of my last two jobs, I helped switch my team from svn to git. In both cases, at least of us first started using git-svn. Other developers saw how we could use this to edit our commit history before pushing to the server; create lightweight topic branches to separate feature work from bug fixes; push changes from one personal repository to another for things like code reviews; and do better merges and cherry-picks between SVN branches than SVN itself.
Other advantages to highlight are:
* Way better support for branches and merging, especially long-lived branches or any branches that include cherry-picked changes. (SVN 1.5 improved things a lot, but we found that it still broke merges occasionally while git was rock-solid.)
* Great tools for offline/disconnected development (including commit, rollback, branch, history viewing, git-bisect).
* Increased speed of many common operations (viewing the log, merging and diffing across branches, switching branches, etc.)