Distributed Version Control with Git

From DevSummit
Jump to: navigation, search

Facilitated by Austin Putman, Radical Designs

Austin will discuss how Radical Designs continues to integrate Git, the open source distributed version control tool, into their operations. Version control is central to how distributed teams work together, as well as enabling some sweet workflows for updating code from third party vendors. Low-overhead versioning also improves support for clients who manually edit files on the server.

Git and You

Subversion provided lots of innovations, but distributed version control systems take this concept to the next level.

Git was written by Linus Torvalds to help collaborate work on Linux kernel.

Git has a painful adoption process because you're giving up the simplicity of svn checkin/checkout, but Git has lots of powerful features that make it worth it.

Git can be useful for local work, since you don't need a remote repository to link to, but the danger of only working locally is that you could blow the entire folder away by accident.

Lightweight Git: /project git init git add git commit -m "initial commit"

"git status" works like "svn status", except that there's more information about the changes.

"git log --online" can give you a list of results.

No revision numbers, all snapshots have their own SHA-1 hash number.

Rollbacks by "git reset -hard xyz123", or "git reset -hard HEAD" for last revision or "git reset -hard HEAD~1" for second to last revision.

"git clone" fetches a repository for cloning, allows you to use several protocols, including https, ssh, git, and file

"git remote add" adds the file to a remote repository

"git push origin" pushes to the repository aliased as origin

"git pull" gets the repository from the address following the command

Subtle but important difference between merging and rebasing!

"git diff" for looking at differences

"git checkout -b featurename" creates a branch called featurename

"git checkout master" is a way to checkout your master branch

"git tag tagname" tags a branch with that tag

"git stash" allows you to put a revision on ice while you go back to a previous version for work such as a bug fix


Resources for Further Learning

Git cheat sheet

SVN to git crash course

Scott Chacon is a developer with Github who wrote a book called "Pro Git".

He's awesome, so his book is available for free online or you can buy the dead tree version.

free book on git

the formal git documentation