Here are the basics of how a team of two or more people can collaborate on a project using Git. I wrote this to help a co-worker learn Git. Please comment here on the original Git Gist for git collaboration if you’ve got any suggestions.
Create the change
$ git checkout -b my-feature
… modify code ….
$ git add <filename>
$ git commit -m “my feature is this”
… or, if you’re lazy …
$ git commit -a -m "my feature is this"
… pulls in changes from master since we branched, then re-apply ours on top. Totally fine to merge here instead of rebase …
$ git pull
$ git rebase master
… resolve conflicts (if any) and add them …
$ git add <filename>
$ git rebase --continue
… # push my branch back to the server
$ git push origin my-feature
Other guy merges in the changes
$ git pull
… list branches
$ git branch -a
… bring a branch local
$ git branch --track my-feature origin/my-feature
$ git checkout master
$ git merge my-feature
… resolve conflicts and look around …
$ git push
… delete branch (and remote branch) when done
$ git branch -d my-feature
$ git push origin :my-feature
Other useful commands
To remove remote branches from your list after they have been deleted by other people
$ git remote prune origin