For anyone that has used the Subversion version control system and wants to consider the switch to Git instead, here is a simple comparison of the more common tasks you’re likely to need to get started.
Please excuse the somewhat simplistic narrative in some items. This article is intended to get users accustomed to the basic Git commands without being too specific about the terminology of either world. Some items also show more than one Git command for the equivalent Subversion command (not uncommon in Git) and there are of course lots of shortcut ways to do some of the items (but for simplicity I’ve not covered them here).
1. Check out a repository
i.e. Fetch a copy of the files in a repository that I’ve never fetched before…
$ svn checkout <url> $ git clone <url>
2. What files have I changed?
i.e. Which of my locally checked out files have changed since I last checked them out?
$ svn status $ git status
3. What’s changed on the server?
i.e. Has someone else committed changes that I don’t yet have locally?
$ svn status -u $ git fetch origin $ git diff <branch> origin/<branch>
4. Show my changes
i.e. What are the changes I’ve made to my files?
$ svn diff $ git diff
5. Fetch latest files
i.e. Fetch the very latest copy of my repository from the server
$ svn update $ git pull origin <branch>
6. Commit my changes
i.e. Push all my changes back to the server
$ svn commit -m "A comment describing your changes" $ git add <files> $ git commit -m "A comment describing your changes" $ git push origin <branch>
7. Change logs
i.e. View a list of my most recent changes
$ svn log $ git log
Some other useful Git commands to note
Show all available branches
$ git branch -a
Show differences made in last commits
$ git log -p -<n>
Prune any local copies of branches that have been removed from master copy of repo
$ git remote prune origin