Git vs. SVN – Commandline Syntax Reference

Learning the git workflow takes a bit of brain retraining, but since I’ve been using SVN almost entirely via commandline (because Subversive sucks and locks up my Eclipse when I try to use it for anything beyond synching/updating/committing a handful of files), adopting git’s commandline syntax is reasonably similar. Consider these simple operations:

Initial checkout from existing repo for a given branchgit clone http://github.com/sonatype/sonatype-tycho.git; cd sonatype-tycho; git checkout origin/tycho-0.10.xsvn checkout http://anonsvn.jboss.org/repos/jbosstools/branches/jbosstools-3.2.0.Beta1/
Update locally checked out files from central repogit pullsvn update
List locally changes files/foldersgit statussvn stat
Diff locally changed filegit diff somefile.txtsvn diff somefile.txt
Revert locally changed file*git checkout somefile.txtsvn revert somefile.txt
Revert ALL local changes (except untracked files)*git reset –hard HEADsvn revert . -R
Add new filegit add file.txtsvn add file.txt
Add new folder recursivelygit add foldersvn add folder
Delete filegit rm file.txtsvn rm file.txt
Delete foldergit rm -r folder (non-recursive by default; use -r to recurse)svn rm folder (recursive by default; use -N to not recurse)
Commit changed file to central repogit commit -m “message” file.txt; git pushsvn ci -m “message” file.txt
Ignore files/folders (in the current folder)echo “target

*.class

bin” > .gitignore; \

git ci -m “gitignore” .gitignore

svn propset svn:ignore “target

*.class

bin” .; \

svn ci -N -m “svn:ignore” .

Obviously you can do a lot more w/ Git than with SVN (like stashing local changes temporarily), but for the sake of simply moving from a VCS to a DVCS and being able to continue to work the same way you already do, the above table should provide a good introduction.

Reference: Git vs. SVN – Basic Commandline Syntax Reference from our JCG partner Nick Boldt at the DivByZero blog.

Share and enjoy!
Post to Facebook Post to TwitterPost to Google+Post to Delicious Post to StumbleUponAdd to LinkedInAdd to DiggAdd to RedditSend via Mail


© 2010-2012 Java Code Geeks. Licenced under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
All trademarks and registered trademarks appearing on Java Code Geeks are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries.
Java Code Geeks is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.