从主分支中删除单个合并分支



在我的主分支中,有以下本地分支已合并,但我想从主分支中删除local_branch3

local_branch1
local_branch2
local_branch3
local_branch4

从主中删除local_branch3后,我希望它保持为本地分支(仅从主中删除(。

我已经检查了史蒂夫哈曼关于这个类似问题的博客,但这似乎也永远删除了本地分支。

编辑:澄清我的意思,正如我在以下评论之一中发布的那样:

我希望主分支撤消local_branch3合并产生的更改,同时保持local_branch3不变。

原因是我想在调整local_branch3时保持master分支可交付。

也许你的意思是从主人那里恢复local_branch3?

如果是这样,请首先检查合并local_branch3提交的 SHA1 值。和

git checkout master
git revert -m 1 <<SHA1 value>>

然后主分支中没有local_branch3代码。locah_branch3将继续存在。

如果我

没看错这个问题,Shirakia 的答案(恢复合并提交的更改(是正确的,它按照广告工作,OP 应该使用它。

但值得指出的是,如果在 local3 上的进一步工作使其全部有效,并且您自然希望重新应用原始工作以及后来的更正,会发生什么。

截至

合并的 local3 提交现在是合并提交历史记录的一部分。由于来自 local3 的任何进一步合并的基本内容都位于新的合并基址上,因此所有这些历史记录都被有效地标记为(实际上,它已经(正确应用:任何后来的合并都只会看到自那时以来所做的更改。还原没有撤消该部分(实际上,这就是还原的重点,不删除该提交(。

这是一个众所周知的讨论,如果 local3 上的进一步开发使整个事情再次可合并,如何重新应用更改(您还原还原,您自己将更改放回(。

另一种更简单的表达方式是,撤消您不想从历史记录中删除的任何提交的正确方法是还原它。 这包括以后撤消还原的任何决定。

最新更新