簡體   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