我有一个 git(和 Github)存储库,其中包含一个master
分支、一个development
分支和几个功能分支。每个功能分支都被分支出来development
并随后合并到development
.
我现在想“推广”development
到master
. 我不想合并这两个分支,因为可能会出现冲突。本质上,development
是“生产就绪”,我想master
反映development
. 我怎样才能做到这一点?
换句话说,开发是你的新主人。最简单的方法就是让开发人员掌握:
git push origin origin/development:master
Run Code Online (Sandbox Code Playgroud)
如果从当前的 master 开始开发,这将起作用。如果没有,并且您不想保留主服务器的历史记录,您可以强制推送:
git push -f origin/development:master
Run Code Online (Sandbox Code Playgroud)
如果有其他工作(分支)从 master 分叉出来,则可能会出现强制推送的问题。在这种情况下,最安全的方法是进行技术合并,如前面提到的线程的答案中所述。
我认为在声明开发准备生产时进行合并提交会更好,以便您可以回滚。
虽然这对于普通的 git 命令完全可行,但我有一个脚本来完成所有步骤:https : //gist.github.com/soulrebel/9c47ee936cfce9dcb725
在实践中,这是一个促进命令的作用:
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
Run Code Online (Sandbox Code Playgroud)