太久沒有拉東西下來時,在gitlab要merge Request時會遇到合併衝突,但如果你確定你的版本就是最新的版本,跟團隊成員商討過後可以直接執行強制合併:
在終端機中cd進入專案資料夾然後輸入 git remote -v 可以檢視當前各個分支的指向,在標準的 Git 協作流程中:
origin:應該指向你的 個人 Fork(HarryChen1029/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
- 若有衝突:打開編輯器存檔你要的程式碼,然後執行:Bash
git add . git commit -m "chore: 解決衝突並準備強制更新"
第三步:強制推送到主倉庫 (Upstream)
這是最關鍵的一步,直接用你現在這台電腦的內容「洗掉」遠端 dev。
git push upstream dev --force
可以執行以下程式碼進行確認:
git fetch upstream
git diff development upstream/development
若git diff… 沒有顯示東西,那就代表合併成功了!