GIT: 強制合併

太久沒有拉東西下來時,在gitlab要merge Request時會遇到合併衝突,但如果你確定你的版本就是最新的版本,跟團隊成員商討過後可以直接執行強制合併:

在終端機中cd進入專案資料夾然後輸入 git remote -v 可以檢視當前各個分支的指向,在標準的 Git 協作流程中:

  • origin:應該指向你的 個人 ForkHarryChen1029/cell-front-end)。
  • upstream:應該指向 原始專案主倉庫(通常是 birc-web/cell-front-end 或組織帳號)。

如果有指向錯誤,可以先刪除錯誤的 upstream

git remote remove {Wrong Branch}

再換成真正的專案主路徑

git remote add upstream https://gitlab.ntubimdbirc.tw/{Project Name}.git

第一步:清理並確認本地狀態

先確保你的本地 dev 分支是最乾淨、最新的狀態。

# 確保在 dev 分支
git checkout dev

# (選做) 如果你想放棄所有本地未存檔的雜亂改動 (.env 等)
git restore .

第二步:將主倉庫 (Upstream) 的更新抓下來解決

即使要強制合併,最好的做法還是先讓本地「吞掉」遠端的更新,這樣可以避免 Pipeline 執行失敗。

# 抓取主倉庫最新動態
git fetch upstream

# 強行讓本地 dev 吸收 upstream/dev 的內容 (解決衝突)
git merge upstream/dev
  • 若有衝突:打開編輯器存檔你要的程式碼,然後執行:Bashgit add . git commit -m "chore: 解決衝突並準備強制更新"

第三步:強制推送到主倉庫 (Upstream)

這是最關鍵的一步,直接用你現在這台電腦的內容「洗掉」遠端 dev

git push upstream dev --force

可以執行以下程式碼進行確認:

git fetch upstream
git diff development upstream/development

git diff… 沒有顯示東西,那就代表合併成功了!

Leave a Reply

Your email address will not be published. Required fields are marked *