从主分支中移除一个合并分支
在我的主分支中,有以下已合并的本地分支,但我想从主local_branch3
删除local_branch3
:
local_branch1
local_branch2
local_branch3
local_branch4
从主服务器删除local_branch3
后,我希望它保持本地分支(只能从主服务器中删除)。
我在这个类似的问题上检查了史蒂夫哈曼的博客,但这似乎也永远删除了本地分支。
编辑:澄清我的意思,因为我在下面的评论之一发布:
我希望主分支撤销由local_branch3合并产生的更改,同时不改变local_branch3。
原因是我希望在调整local_branch3
同时保持master
分支的可交付local_branch3
。
也许你的意思是回复主人的local_branch3?
如果是这样,首先检查合并local_branch3的提交的SHA1值。 和
git checkout master
git revert -m 1 <<SHA1 value>>
然后在master分支中没有local_branch3代码。 而locah_branch3将会保留。
如果我正确地阅读这个问题,shirakia的答案(恢复合并提交的更改)是正确的,它按照广告方式工作,OP应该使用它。
但值得指出的是,如果local3上的进一步工作使其整体有效,会发生什么情况,并且您自然希望重新应用原始工作以及后面的更正。
作为合并的local3提交现在是合并提交历史记录的一部分。 因为从local3进一步合并的基本内容位于新的合并基础上,所有这些历史记录都被有效地标记为(实际上,它已被)已经正确应用:后来的任何合并都只能看到自此之后所做的更改。 回复没有撤消该部分(事实上,这是回复的全部点,不删除该提交)。
这里有一个众所周知的关于如何在local3上进一步开发使得整个事情再次合并(你恢复回复,你自己把这些修改置换回来)的重新应用变化的讨论。
另一种可能更简单的方式是,撤消任何你不想从历史中删除的提交的正确方法是恢复它。 这包括任何稍后撤消逆转的决定。
链接地址: http://www.djcxy.com/p/49829.html上一篇: Remove a single merged branch from master branch
下一篇: Revert a merge commit from a protected branch on GitHub.com