Jen*_*sen 2 git branching-and-merging
是否可以将远程分支重置为另一个远程分支?
假设我有两个分支:master和develop。该develop分支由集成/构建分支组成master并用作集成/构建分支。它没有其他目的。
在冲刺结束时,所有获得批准的功能分支都将合并到主分支中。
在冲刺结束时,每个人都需要删除本地的开发分支副本,我们删除远程副本,然后从 master 制作一个新副本。这并不理想,但我们使用的策略本身就是我们商定的并且最适合或需要的策略。它松散地基于每个功能分支策略。
问题是,如果有人不删除他的本地副本并执行更新,他会收到一条消息,表明他的本地开发分支领先于远程分支。这是因为从上一个 sprint 合并但没有进入 master 的功能分支仍然在他的本地副本上。构建基础设施本身也面临风险,因为如果我们不执行完全干净的检查,我们就有可能仍然存在旧的东西。
诸如此类的操作reset --hard不起作用,它们可能会重置我的本地副本,但我无法将它们推送到远程分支。
有没有办法使用提交使开发分支与主分支完全相同,而不是重新创建它?
所以,你的分支是master和develop。您想重置develop回master:
git checkout develop
git reset --hard master
git push -f <remote> develop
Run Code Online (Sandbox Code Playgroud)
或者,如果您已经删除了本地分支develop,您可以一步完成:
git push -f <remote> master:develop
Run Code Online (Sandbox Code Playgroud)
这会推送本地分支master,但develop在远程命名它。
or标志-f的--force意思是“是的,Git,我正在尝试删除数据。我知道我在做什么。” 在这种情况下,推送develop会丢失远程提交,但您通常会-f告诉 Git 您想要丢失这些提交。-f除非您知道原因,否则切勿使用。
| 归档时间: |
|
| 查看次数: |
9702 次 |
| 最近记录: |