繁体   English   中英

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

[英]Remove a single merged branch from master branch

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

local_branch1
local_branch2
local_branch3
local_branch4

从master中删除local_branch3之后,我希望它保留为本地分支(仅从master中删除)。

我在这个类似的问题上检查了Steve Harman的博客 ,但这似乎也永远删除了本地分支。

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

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

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

也许你的意思是从master恢复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上的进一步开发使整个事情再次合并(你还原恢复,你自己把更改)

另一个可能更简单的方法是,撤消任何你不想从历史记录中删除的提交的正确方法是还原它。 这包括任何后来撤销回归的决定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM