[英]x commits behind master, how to do without merge master on branch
我正在使用 git 來維護我的代碼,現在我基本上有 3 個分支:
master(受保護,無法直接編輯)
開發
發布版本(可以是 v1、v2 等)
很久以前,我在 master 上進行了一次合並,我通過接口恢復了(僅在 master 分支上),但現在我的開發分支總是在 master 后面 10 次提交,但我不能將 master 合並到開發中,因為它會導致代碼回歸。
如何在開發時重置這些提交? 有沒有辦法“取消”這些在 master 上的提交? 或者一種基於當前開發狀態重置主人的方法?
謝謝
這里可能存在更大的問題(因為您有一個還原的合並,如果將來您想將這些提交的更改重新合並到master
中,這將成為障礙)。
也就是說,讓ours
不說你落后於master
而不會影響develop
分支的內容的最簡單方法是使用ours
合並策略進行合並(不要與可以給予默認合並策略)。
git checkout develop
git merge -s ours master
在紙面上,這告訴develop
developer 並沒有真正落后於master
,那個master
只是包含與 development 永遠不會相關的develop
。
這樣做的缺點是它“隱藏”了合並中的更改。 一些命令(可能還有一些開發人員)假設如果合並提交的父級可以使用默認的合並策略在沒有沖突的情況下被合並,那么這就是發生的事情 - 所以像這樣的合並,打破了這個假設有時被稱為“邪惡合並”。
另一種選擇是提前develop
並將master
合並到 development 正常,但然后恢復該合並。
git checkout develop
git merge master
git revert -m1 HEAD
我知道這聽起來讓我提出的第一個問題更加嚴重,但這是一種罕見的情況,即兩個錯誤可能成為正確。 這里的優點是(粗略地說)在將來的某些合並中再次將develop
歷史與master
結合起來,git 將看到在master
上恢復之后develop
的恢復(更改的重新恢復) - 所以合並將表現得像你期望的那樣。 而且您沒有任何“邪惡”(或其他奇怪的)合並。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.