2022.03.29
搞了兩天的 rebase 終於成功解決了。
比較常碰到的問題是:
git rebase
,最後合併的線圖卻依然像 merge
一樣,是雙線合併,而不是單插一枝花在 main
後面。Merge branch 'home' of https://gitlab.com/sample.git into home
(到底為什麼 home 要 merge home…)後來問了朋友,終於成功 rebase 變成一條線啦 ((撒花,以下紀錄步驟,希望下次不要再撞牆惹
假設我今天在本機端開了一個 branch:subBranch,然後我要用 rebase 接到 main 後面。
git checkout subBranch
git rebase main
接著視情況需要解衝突,假設衝突已解完:
git add . git rebase --continue
如果在這之前,不小心先把 branch 推到遠端的話,可能會造成線圖不一致,需要你 pull & push 的提示。
在此階段,請不要 pull,然後強制 push:
git push -f origin chart
這個用法,會把線上的 chart 分支移除,然後重新推送本機端的 chart。所以如果該 branch 有其他同事的心血,記得先行備份喔。
▼ 做到這個步驟,chart 應該已經插在 main 後面了。
最後,我們切回 main,合併 rebase 後的 commit
git checkout main git merge chart
我自己的習慣是會把無用的分支給移除,第一行刪除本機 branch,第二行刪除遠端 branch。
如果一開始沒有上傳到遠端,那就不需要輸入第二行的指令囉!
git branch -d chart git push origin --delete chart
以上,就是我目前使用 rebase 的步驟,踩雷踩了兩三天,看了好多不同的教學,卡在一個神奇的地方 😂,但幸好順利解決了,感謝朋友,感謝大大 m(_ _)m