我在 Git 中有一個 staging 和 main 分支,似乎有點不同步。我正在使用 GitLab,并打開了從 stage 到 main 的合并請求,只是為了看看分支之間的區別是什么。差異似乎包括主分支中已經存在的“更改”,我對此有點困惑。例如,“更改”選項卡中顯示的更改之一是添加了一個已經在主分支中的檔案,并且這兩個檔案是相同的。
然而,我在暫存分支上看到了一些尚未進入主分支的提交。這很好,我現在想讓它們遠離主分支。
我想知道如何使分支同步,以便當我打開從階段到主的合并請求時,唯一的更改是那些實際上不在主中的更改。為什么當我打開合并請求時,已經在 main 中的檔案顯示為“添加”?
理想情況下,我不希望觸及主分支,而是使用主分支重建暫存分支,并將不在主分支中的提交保留在舞臺上。
uj5u.com熱心網友回復:
發生這種情況是因為您的暫存分支中的提交已經合并到您的主分支中。
這是 Gitlab 級別的視覺不準確,但這不是 git 明智的問題。Gitlab 在其 Web 界面中將所有提交顯示為更改。Git 足夠聰明,可以在 staging 中選擇新的提交,并在最后一次合并的提交之后將它們添加到 main 中,這樣您就可以安全地進行合并。
您可以通過合并暫存分支上的主分支來修復視覺不準確:
git fetch origin main:main
git checkout staging
git merge main
# fix conflicts, if any
git push
uj5u.com熱心網友回復:
根據您目前所說的,您的 Git 作業流程聽起來有點奇怪。回到 Git 的基礎并獲得基本的 Gitflow 作業流設定,或者根據您的需要獲得更簡單的版本。
最終它非常簡單......
- 從 Dev 分支創建功能分支
- 在 Dev 分支作業
- 從功能分支合并更改的拉取請求 --> 開發分支
任務完成。并相應地向上移動堆疊。
每當您在 Pull Request 中看到不應該存在的更改時,通常是因為您在執行上面的第 3 步之前合并了 Dev --> Feature Branch,這會導致更多的問題和奇怪的行為,就像您正在經歷的那樣。
希望以上是一些提示,可以讓您朝著正確的方向前進。但是,如果不逐步了解現有 Git 作業流程的具體細節,這是一個不可能回答的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/523771.html
