Developer guide: general workflow - ManvilleFog/buttonmen GitHub Wiki
When starting out with a new issue, make a branch in your forked repository of upstream/master by default, unless there is some other more appropriate branch. The new branch should be given a name starting with the issue number that you are trying to address, followed by a short human-readable summary.
git checkout upstream/master
git checkout -b XXX_description
All development to do with this particular issue should occur on this branch. Commit changes to your local repository as often as you wish.
git add changed_file
git commit
When the problem has been solved (to the best of your knowledge), the branch should be pushed up to your forked repository.
git push origin XXX_description
Then, submit your changes to buttonmen-dev/buttonmen as a pull request. To create a new pull request:
- go to your forked repository at Github: https://github.com/username/buttonmen
- select the branch XXX_description in the dropdown on the left
- press the green pull request button on the left of the dropdown
- fill in the title and description
- assign an appropriate developer to check the pull request
If the pull request is accepted, then it will be merged automatically into master by the checker by clicking the button "Merge pull request".
If the pull request is incomplete or has conflicts with master, then the checker will comment on the problem. It is then the responsibility of the initial author to address any issues raised, and update the pull request with additional commits. The pull request is assessed again by the checker. This back-and-forth continues until the checker is happy with the pull request, which can then be merged automatically into master by clicking the button "Merge pull request".
Generally, there will be no reason to close incomplete pull requests.
After a pull request has been accepted, it is possible to tidy up your local and forked repositories by deleting the branch.
git push origin :XXX_description
(to delete the branch on the forked repository)
git branch -D XXX_description
(to delete the branch on the local repository)
git remote prune origin
(to remove all the locally cached copies of branches that do not exist any more on the forked repository)