熊熊想起來,居然沒聊聊修改commit
這部分,
就不等晚上了,現在就是現在!
不管你是像我一樣,錯字太平洋或者沒想法暫時隨便留言,
但自己獨立作業或練習就算了,協作或者工作可不能隨便開玩笑,
如今需要折返修改,那絕對需要使用這幾個指令
BTW我們可以修改任意過去commit,但必須是在push上去前哦~
$ git reset
透過回去某某步驟,拆掉重新commit,就像拆合併一次一樣,
但是如果是拆前面commit 要 add 時,後面東西都會變成一大包的 commit 。
第11夜 Git的線圖解讀 2 merge 、 reset
$ git commit --amend
修改最後一個(最新一次)commit
amend 本意就是修改,git commit 加上後面這參數可以達到修正 commit 效果,
但只能是最後一次的紀錄,沒辦法越級的~
$ git rebase -i HEAD
可以直接對需要更改的過去commit 單一修改!多個修改!
來點情境看看以上咒語怎麼處理。
哎呀瞧瞧我在 commit 時要打 add dog 誤打成 god
太糗了吧,及早發現及早治療!
如同上面提到的上一筆 commit 我可以使用$ git commit --amend
咦!這終端機畫面是不是有點熟悉,居然跑到 vi 模式,原來是在vi模式更改 commit 訊息,
步驟是如出一轍的,第7晚 Git commit 番外篇 - vi模式
也是可以不用進入到 vi 模式,就一口氣打完吧~
下面就來示範一口氣操作$ git commit --amend -m "my new commit message"
舉例來說 我看到前兩步的 pig 想要換成別的,改成 shark (兒歌響起 baby~$ git rebase -i HEAD~2
看來又來到 vi 模式囉~經過前面幾次的嘗試應該跟我一樣不害怕了吧(游刃有餘?
看它好熱心,介紹了很多用法呢~
我們就專注在修改 commit 內容就好。
透過 r 縮寫, reword 可以來重新編輯訊息好讚
本來進入都是 pick ,我們一樣使用 vi 模式編輯, pick 改成 r
它會 focus 在需要編輯的部分,我就把 add pig 改成 add shark 寫入並提交離開。
(有可以一口氣把需要改的 pick 都改成 r 進行多個批次修改)
之前只會reset
,導致後面 commit 會變成一大包,沒有很喜歡。
自從發現$ git commit --amend
、 $ git rebase -i HEAD
也太好用了吧,現在我不害怕更改過去 commit 了XD
赫然發現 vi 模式也太常出現了吧,果然水很深。