and pulls from the server. Server goes down, everyone is down. Git is decentralized — everyone’s local copy is a fully-functional copy of the repository. If the main Git host explodes, you can move to another host in minutes, or just work and commit locally. Branching and merging are advanced (and potentially dangerous) techniques in SVN — in Git they’re simple and easy, part of your everyday process. HEAD in SVN is simply the latest revision — In Git HEAD is where your working branch is currently located; you can move around dynamically to any point in the history.
name and URL. Add as many as you need. git remote (-v): List the remotes we’ve added. git push/pull (remote) (branch): Push code to and pull from a remote copy of the repo.
at the current point, or a point you specify. git checkout: Switch branches. git merge another-branch: Merges another branch into the current branch. Use the “no-ff” ag to keep branching history.
to… ignore. is is great for cache les, generated code (minconcat, etc.). Like an .htaccess it works for all children les and directories. You can specify global ignores for things that you’d never want to version, like DS_STORE and other system les. https://help.github.com/ articles/ignoring- les
master. From develop, we can create branches for speci c features, merging them back into develop as we nish. When tasks are complete, we create a release branch to prepare a candidate build — bug xes and the like would go here. Once QA has approved the release, we merge the release into master and tag it. Hot xes are branched from master and merged into develop / master on approval.
@user mentions, subscriptions, inter-project references. Inline code commenting. Ease of sharing code, commits, and anything else pertaining to your project. Gives the option to use a central-server model (as seen in the branching walkthrough) or a blessed/lieutenant model to manage code reviews, complex features, etc.
be reviewed, what has been reviewed, and what needs more work. Assignees also make it easy to delegate review responsibilities to other team members, or a dev on another project that has time to help out.
great talk on “secret” features in GitHub: http://www.youtube.com/watch?v=Foz9yvMkvlA Getting started articles: https://help.github.com/categories/54/articles
still use Git with the git-svn module (built in with standard Git installs). Cloning: git svn clone repo-url For very large repos, use the –r ag to only grab a set number of revisions: git svn clone -r1600:HEAD repo-url Locally, you can work with regular Git — add / commit / branch / etc. To svn ci run git svn dcommit — is will push your local commits up to SVN individually. To svn up run git svn rebase — is will pull remote changes to your local. More info: http://git-scm.com/course/svn.html
the presentation (using git lg –all, etc.), check out: http://www.jukie.net/bart/blog/pimping-out-git-log All colors are customizable — here’s a quick way to enable automatic colors: http://faizanshaharyar.com/enabling-colors-in-git-command-line-interface Autocompletion for branches, and more enhancements: http://en.newinstance.it/2010/05/23/git-autocompletion-and-enhanced-bash- prompt/
Git — Interactive Tutorial: http://try.github.com/levels/1/challenges/1 Git Cheatsheet: http://byte.kde.org/~zrusin/git/git-cheat-sheet-medium.png Converting an SVN project to Git: http://john.albin.net/git/convert-subversion-to-git A great walkthrough on making a self-hosted Git repo: http://kb.mediatemple.net/questions/1594/Using+Git#gs Con uence Article on GitHub and Project setup: https://con uence.cpbgroup.net/pages/viewpage.action?pageId=6554387