commit 版本的時候可以寫下一些訊息,以便他人或未來自己查看的時候可以快速理解。但是,有時候寫程式寫到疲乏,撰寫出來的 commit message 可能就會變成火星文,連自己都看不懂,那有辦法改 commit message 嗎?
當然有!而且有四種辦法:
那麼就來先介紹第 2 種辦法吧!第一種就不用介紹了吧:)
rebase
可以拆成 re
+ base
,翻成中文大概就是「重新定義 branch 的參考基準」,而 base
指的就是「branch 是怎麼誕生的」,所以 git rebase
這個指令基本上就是在修改歷史,當你在做 rebase 時還會看到這個警告 Make sure your changes have not been pushed to anyone else
,因為有可能會造成他人的困擾。
接下來還是講一下他的作業機制,以下圖片與內容取至 另一種合併方式(使用 rebase),原文中的舉例是使用三個 branch,分別是 master、dog、cat,而現在的 head 位置是在 cat 身上
假設使用以下指令:
git rebase dog
他的意思是把 cat 分支改建立到 dog 分支上,有點像剪下貼上的感覺,原文中也有對下圖做更詳細的解釋,如下:
「我先拿 c68537 這個 Commit 接到 053fb2 這個 Commit 上」,因為 c68537 原本的上一層 Commit 是 e12d8e,現在要接到 053fb2 上,所以需要重新計算這個 Commit 的 SHA-1 值,重新做出一顆新的 Commit 物件 35bc96。
「我再拿 b174a5 這個 Commit 接到剛剛那個新做出來的 Commit 物件 35bc96 上」,同理,因為 b174a5 這顆 Commit 要接到新的 Commit 的原因,所以它也會重新計算 SHA-1 值,得到一個新的 Commit 物件 28a76d。
最後,原本的 cat 是指向 b174a5 這個 Commit,現在要改指向最後做出來的那顆新的 Commit 物件 28a76d。
HEAD 還是繼續指向 cat 分支。