本日のTIL
ぶつかったこと
仕事でコードを書いてレビューをお願いしたら、上司から二つ前のコミットを変えるように言われました。
「--fixup
を使うといいよ!」と言われたのですが、そのオプションを知らなかったのでググってみました。
解決法
普通にコミットするときに既存のコミットを下のように指定します。
git commit --fixup HEAD~1
こうすると指定されたコミットメッセージの先頭に “fixup! ” がついたコミットになります。
そして、この状態で --autosquash
というオプションをつけて rebase -i
します。
git rebase -i --autosquash HEAD~2
すると、エディタが開きますが、とりあえず何も考えず内容を保存して終了してみましょう ( エディタが開いた段階で指定したコミットと”fixup!” がついたコミットがまとめられるようになっています )。 これで、 “fixup!” のついたコミットと指定したコミットが一つにまとまります ( コミットメッセージには “fixup!” はつきません ) 。
ちなみに、 --autosquash
というのは長いですね。いちいちオプションをつけるのは面倒です。
エイリアスを設定してもいいのですが、下記のように設定するといつでも rebase をするときに --autosquash
をつけたのと同じことになります。--autosquash
オプションをつけて頻繁に rebase する場合はぜひ下記のコマンドを叩きましょう。
git config --global rebase.autosquash true
まとめ
便利なオプションがあったんだなあ。というお気持ちです。はい。
comments powered by Disqus