對于我們的專案,我們有一個main分支。我們每個人也都在自己的功能分支上作業。有幾次,我創建了一個功能分支,例如feature1,關閉main,完成,將其推送到 GitHub,并創建了一個拉取請求。在拉取請求被批準之前,我已經分支feature1到feature2并且我正在做一些新的事情。然后,我將它推送到 GitHub 并再次發出拉取請求。當我的第一個拉取請求 ,feature1獲得批準時,我會在feature2.
- 為什么會發生這種情況?我沒有改變任何東西
feature1,只是在它上面添加了。 - 有沒有解決這個問題的正確方法?我嘗試過重新定位,但這是一個非常漫長而乏味的程序,需要在每次提交時修復問題。
- 我在想,也許不是從
feature2into發出拉取請求main,而是應該到feature1. 那能解決嗎? - 有沒有更好的做法來做我們想要完成的事情?
uj5u.com熱心網友回復:
合并您的石油請求時,您是否使用“擠壓合并”或“變基和快進”?
如果是這樣,要么:
- 停止使用它并使用“真正的合并”/“合并提交”;或者
- 永遠不要基于未合并的拉取請求建立新分支
原因是,每當您壓縮或重新設定分支時,您都會丟棄最初在該分支上的提交,并創建與原始提交沒有記錄關系的新提交。如果您基于這些原始提交進行了后續作業,則git 認為這些提交仍未合并,并且當您嘗試合并以后的作業時,它會嘗試應用已經進行的更改,這幾乎保證了一些令人困惑的沖突。
您可以通過將第二個分支重新創建到 main 上的壓縮/重新設定的提交上,但是您將分支“鏈接”在一起的次數越多(從之前的功能而不是主功能開始),您為保持它們同步所做的作業就越多。
如果您使用真正的合并,git知道分支之間的關系,并且不會兩次應用相同的更改。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/379885.html
