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