TIL@2025-10-12

git commit --fixupで任意のコミットの内容に変更を加える これまで、すでにコミットをした後に気づいた細かい不具合修正やlinterの適用やtypoの修正はgit commit --amendを利用して直前のコミットに混ぜることでコミットログを綺麗にするようにしていた。しかし、もし混ぜ込みたいコミットが直前ではない場合だと--amendは利用できないので新しくrefactor: fix typoやrefactor: apply formatterのようなコミットを作成していた。 今回、新しくgit commit --fixup <revision>というオプションを知った。これを使うと指定したコミットに対してfixup(修正)をするコミットを作成でき、git rebase --autosquash <revision>^と組み合わせることで特定のコミットに任意の変更を後から混ぜることができる。※ git rebaseをするためコミットハッシュは変わる エディタを開かずにinteractive rebaseを行う git rebase --autosquashを行うにはgitのバージョンが2.44以降である必要がある。もしそれ以前のgitバージョンを利用している場合は--autosquashは-iオプションをつける必要がある。その場合、エディタが開いてしまうが、GIT_SEQUENCE_EDITOR=:やGIT_SEQUENCE_EDITOR=trueを指定しておけばエディタが開かずにinteractive rebaseが可能となる。 参考 https://blog.nishimu.land/entry/2024/08/18/213902 https://github.blog/open-source/git/highlights-from-git-2-44/

October 12, 2025 · 1 min · Fumiya Tanaka