#Contributing
##General Workflow
- Fork the repo
- Clone down your fork
- Cut a branch from master
- Make commits to your branch
- Push from you branch to your fork
- Submit a pull request from your fork to the group repo
- Wait for someone else to review and merge your pull request
- Checkout master and pull down any new changes
- Checkout your branch and rebase from master
##Detailed Workflow
###Forking
Click the fork button from the repo on github
From your shell:
git clone [your forked url]
###Branch
git checkout -b [name of branch]
###Commiting
Commit messages should be less than 50 characters and be in the present imperative tense.
git commit -m "[Your commit message]"
###Pushing
Only push to your forked repo. You should never be pushing directly to your groups master repo.
git push origin master
###Pulling
Submit a pull request from your fork to the group repo. This is how all changes to the group should be made as it minimizes the risk of bad code being introduced to the production environment.
###Merging Pull Request
At least one other team member, but preferably multiple, should complete a thorough code review of each pull request. The merge should only be compeleted if the reviewers are confident that the additions are bug free and an improvement on the existing code base.
###Switching to master
Only pull down changes to the master branch. You can do this by doing
git checkout master
###Rebasing
We have adopted a rebase workflow to avoid a cluttered commit history caused by merge commit messages. After checking out your working branch, type in your shell:
git rebase master