A guide for programming within version control.
- Avoid including files in source control that are specific to your development machine or process.
- Delete local and remote feature branches after merging.
- Perform work in a feature branch.
- Use a pull request for code reviews.
Create a local feature branch based off master.
git checkout master
git pull
git checkout -b <branch-name>
Rebase frequently to incorporate upstream changes.
git fetch origin
git rebase origin/master
Resolve conflicts. When feature is complete and tests pass, stage the changes.
git add --all
When you've staged the changes, commit them.
git status
git commit --verbose
Write a good commit message. Example format:
Present-tense summary under 50 characters
Share your branch.
git push origin <branch-name>
Submit a GitHub pull request.
Ask for a code review in the project's chat room.
A team member other than the author reviews the pull request. They follow Code Review guidelines to avoid miscommunication.
They make comments and ask questions directly on lines of code in the GitHub web interface or in the project's chat room.
For changes which they can make themselves, they check out the branch.
git checkout <branch-name>
./bin/setup
git diff staging/master..HEAD
They make small changes right in the branch, test the feature on their machine, run tests, commit, and push.
When satisfied, they comment on the pull request Ready to merge.
Run tests before merging. Use the Github interface to merge.
Delete your remote feature branch.
git push origin --delete <branch-name>
Delete your local feature branch.
git branch --delete <branch-name>