GitHub workflow

Alejandro Revilla edited this page Jul 25, 2012 · 2 revisions
Clone this wiki locally

Cribbed from: https://github.com/diaspora/diaspora/wiki/Git-Workflow

Quickfire Do's and Don't's

If you're familiar with git and GitHub, here's the short version of what you need to know. Once you fork and clone the jPOS code:

  • Don't develop on the master branch. Always create a development branch specific to the issue you're working on. Name it by issue # and description. For example, if you're working on Issue #359, an aspect naming fix, your development branch should be called 359-aspect-names. If you decide to work on another issue mid-stream, create a new branch for that issue--don't work on both in one branch.

  • Do not merge the upstream master with your development branch; rebase your branch on top of the upstream master.

  • A single development branch should represent changes related to a single issue. If you decide to work on another issue, create another branch.

Step-by-step (the short version)

  1. Fork on GitHub (click Fork button)
  2. Clone to computer ($ git clone git@github.com:~you~/jPOS.git)
  3. Don't forget to cd into your repo: ($ cd jPOS/)
  4. Set up remote upstream ($ git remote add upstream git://github.com/jpos/jPOS.git)
  5. Create a branch for new issue ($ git checkout -b 100-new-feature, if you don't have a bug report no worries just skip the number)
  6. Develop on issue branch. [Time passes, the main jPOS repository accumulates new commits]
  7. Commit changes to issue branch. ($ git add . ; git commit -m 'commit message')
  8. Fetch upstream ($ git fetch upstream)
  9. Update local master ($ git checkout master; git pull upstream master)
  10. Repeat steps 5-8 till dev is complete
  11. Rebase issue branch ($ git checkout 100-new-feature; git rebase master)
  12. Push branch to GitHub ($ git push origin 100-new-feature)
  13. Issue pull request (Click Pull Request button)