Skip to content

Instantly share code, notes, and snippets.

@Millnert
Created February 8, 2016 09:54
Show Gist options
  • Save Millnert/b6dd2c7d5d1b94f661b9 to your computer and use it in GitHub Desktop.
Save Millnert/b6dd2c7d5d1b94f661b9 to your computer and use it in GitHub Desktop.
Updating forks to new stable release
1. clone our fork: git clone git@github.com:IPnett/puppet-keystone.git
2. add upstream remote: git remote add upstream git@github.com:openstack/puppet-keystone.git
3. git remote update
4. in case our fork has become lobotimzed and had branch switched, get master: git checkout -t -b master origin/master
5. update master from upstream: git merge upstream/master
1. i had to do git merge -s recursive -Xtheirs upstream/master
2. git push
6. sync stable/kilo if it exists in our fork:
1. git checkout -t -b stable/kilo origin/stable/kilo
2. git merge -s recursive -Xtheirs upstream/stable/kilo
3. git push
6. get new branch stable/liberty from upstream: git checkout stable/liberty
1. push it to fork branch: git push --set-upstream origin stable/liberty
7. now, for the roll-forward of our local changes:
1. branch ipnett_liberty off of stable/liberty: git checkout -b ipnett_liberty stable/liberty
2. merge our kilo changes into liberty: git merge ipnett_kilo
a) i ran into weird conflicts, somehow the ipnett fork has had its history munged, and instead I did: git merge -s recursive -Xours origin/ipnett_kilo, which let upstream code prevail in the history conflict. i checked that the in this case single locally kept commit was applied, and it was.
3. resolve conflicts
4. git commit
5. git push
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment