Tuesday, July 15, 2014

Developing with GitHub and remote branches

It has been interestting switching from Mercurial to Git. I honestly believed it would be more straight forward but I have to re-read again and again until the new ways sink in with me.

jgraham shared with me some notes (Thanks!) with regards what his workflow looks like and I want to document it for my own sake and perhaps yours:

git clone git@github.com:mozilla-b2g/fxos-certsuite.git
# Time passes
# To develop something on master
# Pull in all the new commits from master
git fetch origin
# Create a new branch (this will track master from origin,
# which we don't really want, but that will be fixed later)
git checkout -b my_new_thing origin/master
# Edit some stuff
# Stage it and then commit the work
git add -p
git commit -m "New awesomeness"
# Push the work to a remote branch
git push --set-upstream origin HEAD:jgraham/my_new_thing
# Go to the GH UI and start a pull request
# Fix some review issues
git add -p
git commit -m "Fix review issues" # or use --fixup
# Push the new commits
git push
# Finally, the review is accepted
# We could rebase at this point, however,
# we tend to use the Merge button in the GH UI
# Working off a different branch is basically the same,
# but you replace "master" with the name of the branch you are working off.