..* Check out working copy from mainline
git pull
git checkout -b "issue/X"
..* Note that new branches should start with "issue/" and the issue number
..* Alter code / add or change automated tests
..* Perform automated build on local machine
..* Update working copy
git checkout master
git pull origin
git checkout <branch name>
git merge master
..* Rebuild on local machine
..* Solve merge conflicts
..* Rebuild and repeat until working copy is stable
git commit (fix #X) "good message"
git push origin issue/X
..* Commit changes to mainline
..* Create pull request
..* Solve eventual comments
..* Ensure build succeeds