レビュー指摘などで過去のコミットに対し、新たな修正をマージしたいとき、[[Lazygit]]でそれを実現する方法。 ## 前提条件 以下のリポジトリを考える。 ファイルは以下3つ。 ```console  file1.md  file2.md  file3.md ``` それぞれ1行ずつテキストが記載されている。 ```console 󰊢  master ❯ cat file1.md hoge1 󰊢  master ❯ cat file2.md hoge2 󰊢  master ❯ cat file3.md hoge3 ``` コミットは以下のようになっている。 ![[Pasted image 20240408223856.png]] ここで `file1.md`に1行追加した。これを以前のコミットにマージしたいものとする。 ![[Pasted image 20240408224246.png]] ## fixup commitする 修正したいコミットを選択し、`F`で[[fixup commit]]を作成する。 ![[Pasted image 20240408225141.png]] 成功すると `fixup! Update file1` というメッセージの[[fixup commit]]が作成される。これだけだと普通のコミットに見える。 ![[Pasted image 20240408225227.png]] ## squashする 修正したいコミットを再び選択し、`S`で[[squash (Git)|squash]] (Apply fixup commits) を実行する。 > [!caution] > `s`ではなく`S` (`Shift+s`) なので注意。 ![[Pasted image 20240408225431.png]] 真ん中のオプションを選び、[[squash (Git)|squash]]で先にある[[fixup commit]]を取り込む。 ![[Pasted image 20240408230058.png]] [[fixup commit]]が来ていること、`Update file1`のコミットに[[fixup commit]]の変更点がマージされていることが確認できる。 ![[Pasted image 20240408230211.png]] ## 参考 - [コミットログを楽に整形できるlazygitの紹介 | ランサーズ(Lancers)エンジニアブログ](https://engineer.blog.lancers.jp/tools/recommend-lazygit/)