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 development.

I’d now like to “promote” development to 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?

  • Renaming RStudio project under version control
  • can't create project in GitLab 5.0
  • How to create alias for git bash to make fast cd through directories
  • What documents should be stored in version control and how should they be stored?
  • Merging XML file changes in git
  • git push error: HTTP request failed: The requested URL returned 504
  • git stderr output can't pipe
  • What is the difference between “git init” and “git init --bare”?
  • Automatically apply “git update-index --chmod+x” to executable files
  • git bad config when piping commands
  • Git: how to repack all loose commits
  • Post-receive hook for gitosis
  • 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
    
    Git Baby is a git and github fan, let's start git clone.