将 Git 个分支升级为 master
Promote Git branch to master
我有一个 git(和 Github)回购协议,其中有一个 master
分支、一个 development
分支和几个功能分支。每个功能分支都已从 development
分支出来,随后合并到 development
。
我现在想 "promote" development
到 master
。我不想合并这两个分支,因为可能会出现冲突。本质上,development
是 "production ready",我希望 master
反映 development
的当前状态。我该怎么做?
换句话说,开发是你的新主人。最简单的方法是简单地推动开发人员掌握:
git push origin origin/development:master
如果开发是从当前的 master 开始的,这将有效。如果没有,并且您不想保留 master 的历史记录,您可以强制推送:
git push -f origin/development:master
如果有其他工作(分支)从 master 分叉出来,则可能会出现强制推送的问题。在这种情况下,最安全的方法是按照前面提到的 thread.
的答案中所述进行技术合并
我认为在声明开发准备好生产时进行合并提交更好,这样您就可以回滚。
虽然使用简单的 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
我有一个 git(和 Github)回购协议,其中有一个 master
分支、一个 development
分支和几个功能分支。每个功能分支都已从 development
分支出来,随后合并到 development
。
我现在想 "promote" development
到 master
。我不想合并这两个分支,因为可能会出现冲突。本质上,development
是 "production ready",我希望 master
反映 development
的当前状态。我该怎么做?
换句话说,开发是你的新主人。最简单的方法是简单地推动开发人员掌握:
git push origin origin/development:master
如果开发是从当前的 master 开始的,这将有效。如果没有,并且您不想保留 master 的历史记录,您可以强制推送:
git push -f origin/development:master
如果有其他工作(分支)从 master 分叉出来,则可能会出现强制推送的问题。在这种情况下,最安全的方法是按照前面提到的 thread.
的答案中所述进行技术合并我认为在声明开发准备好生产时进行合并提交更好,这样您就可以回滚。
虽然使用简单的 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