Git 最大的好處是可以隨心所欲 Commit、切 Branch,想做就做,盡情開發,歷程再怎麼瑣碎噁心都無所謂,反正原始碼 Push 前都可用 Git Rebase 指令重新整理到美美的再公諸於世(延伸閱讀:Visual Studio Git Push 前置作業 - Squash),只要表現在外的一面永遠光鮮亮麗像個網美,誰管你在家摳腳挖鼻孔房間像垃圾堆?

不過有個小問題:git rebase -i commitId 的 commitId 是「整併範圍的前一個 Commit Id」,但如果我想連整併第一個 Commit 怎麼辦?例如:我想將黃框的四個 Commit 合併成一個,但第一個 Commit 726d6ea5 前面已經沒有 Commit 啊?哪來的 Commit Id?

今天學到一招 git rebase -i --root,以 --root 參數取代 commitId,我們就可以從第一個 Commit 開始 Rebase 囉。

將第二到四個 Commit 的命令由 pick 改為 squash (或簡寫 s):

這樣就能成功整併第一個 Commit 了! (灑花)

Tips of using git rebase -i --root to reabse the first commit .


Comments

# by Jian

使用 cb022^ 不行嗎?

# by Jeffrey

to Jian, 你是指用第一個 Commit Id 加 ^ 嗎?(本例為 726d6ea5^) 實測會出現 fatal: invalid upstream 錯誤。

Post a comment