从主分支中移除一个合并分支

在我的主分支中,有以下已合并的本地分支,但我想从主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