Checkout a new working branch git checkout -b <branchname> Make Changes git add git commit -m "description of changes" Sync with remote git checkout master git pull --rebase Update branch git checkout <branchname> git rebase master Push Changes git checkout master git merge <branchname> git push Squash Last N Commits git rebase --interactive HEAD~N Conflicts Resolve conflict my looking at the files in question. git add git rebase --continue Git Flow git flow init # setup project to use git-flow git flow feature start <feature_name> # creates a new feature branch called <feature_name> git flow feature finish <feature_name> # merge feature back into develop branch git flow release start <version> # merge develop to release