在提交程式碼的時候,總會用 rebase -i 來整理還沒推送出去的 branch,像是錯字或是 coding style 之類的小錯誤,以往總是:

  1. git commit "fixup xxxxx" 自己標記一個 fixup 的 commit
  2. git rebase -i xxxxx
  3. 手動調整順序,把 pick 改成 fixup
  4. 儲存完成 rebase

現在可以利用 git commit --fixup & git rebase -i --autosquash 來自動化這些動作,減少人為的錯誤,加快整理的速度。


Example

  1. 有一個 commit log
    log.png

  2. 發現 BBB 檔案有錯要做修正,git commit --fixup [commit]
    fixup.png

  3. 此時的 commit log,有標記 fixup!
    log-2.png

  4. git rebase -i --autosquash @~3
    autosquash.png

  5. 會自動調整順序,和改變為 fixup
    rebase.png

  6. 儲存完成 rebase


預設開啟 --autosquash

1
$ git config --global rebase.autosquash true

之後只要 git rebase -i 時,預設使用 --autosquash 參數


References

Auto-squashing Git Commits


2018-05-20