Promote Git branch to master
I have a git (and Github) repo with a
master branch, a
development branch and several feature branches. Each of the feature branches have been branched off
development and subsequently merged into
I’d now like to “promote”
master. I don’t want to merge these two branches because conflicts may arise. Essentially,
development is “production ready” and I’d like for
master to reflect the current state of
development. How can I do this?
2 Solutions collect form web for “Promote Git branch to master”
In other words, develop is your new master. The easiest way to do that would be to simply push developer to master:
git push origin origin/development:master
This will work if development started from current master. If not, and you don’t want to keep the history of the master you can force the push:
git push -f origin/development:master
The problem with the forced push might arise if there is other work (branches) forked from master. In such case the safest approach would be to do a technical merge as described in the answers to earlier mentioned thread.
I think that is better to have a merge commit when declaring develop as ready for production, so that you can roll back.
While this is perfectly doable with plain git commands, I have a script to do all the steps: https://gist.github.com/soulrebel/9c47ee936cfce9dcb725
In practice this is what a promote command does:
git pull --ff-only # check we are up to date on our branch git checkout master # go the target branch git pull --ff-only # check updates there too git merge develop --no-ff # merge with a commit git push # push the merge git checkout develop # back to develop