[英]Remove commit messages of feature branch from master branch after feature branch is merged and pushed
[英]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.