※プッシュしてある場合は枝分かれしてしまうため注意。最後のセクションを見てください
![パソ君](https://jito-site.com/wp-content/uploads/2022/02/computer09_question.png)
・SourceTreeでコミットをまとめる方法ある?
こんな疑問にお答えします。
コミットが多くなりまとめたい場合ありますよね。
例として下記画像のように「テキストを修正しました」「02」「03」等のコミットを、1つにして短くしたいなど。
![](https://jito-site.com/wp-content/uploads/2024/03/afddf02566426904ed5b78941291890b.jpg)
実はそれSourceTreeなら簡単に可能です。
![ジト](https://jito-site.com/wp-content/uploads/2022/02/image.jpg)
すぐにできるよ!
ということで、この記事では「SourceTreeで複数コミットを1つにまとめる方法」について解説していきます!
・SourceTreeで複数コミットを1つにまとめる方法
・プッシュしてしまったコミットの場合の対処
目次
【解決】SourceTreeで複数コミットを1つにまとめる【スカッシュ】
※プッシュしてある場合は枝分かれしてしまうため注意。最後のセクションを見てください
実はSourceTreeにて複数のコミットを1つにまとめることができます。
そんな手順がこちら↓
- まとめるコミットの1つ手前を選択
- 「インタラクティブなリベースを行う」をクリック
- 過去を含めてsqushする
- コミットメッセージをまとめたものに変える
順に解説してきます。
まずまとめようと思うコミットの1つ手前を選択します。
![](https://jito-site.com/wp-content/uploads/2024/03/62cc1a17de4107074615b3b6ab507c29.jpg)
今回でいうと「テキスト修正しました〜」の3つのコミットをまとめたいので、その手前の「test01」となります。
そしたら右クリックをします。
すると下記画像のような項目が出るので「〜の子を対話形式でリベース」をクリックしましょう。
![](https://jito-site.com/wp-content/uploads/2024/03/fe5c7f178f4347e897ea285147f87d38.jpg)
※Windowsだと「~の子とインタラクティブなリベースを行う」との文言の可能性があります
すると下記画像のようになるので、一番上のコミットを選択して「過去を含めてsqushする」をクリックします。
![](https://jito-site.com/wp-content/uploads/2024/03/467caf48cba0a7e4ed880aa4ff6559f8-e1710919554675.jpg)
こうすることで「テキストを修正しました03」と「テキストを修正しました02」がまとまり下記のようになります。
![](https://jito-site.com/wp-content/uploads/2024/03/435c88e151af9251431f7062b757d8d7-e1710920059211.jpg)
「過去を含めてsqushする」をクリックすれば、1つ前のコミットと選択したコミットがまとまるということですね。
そのためもう一度「squshする」をクリックすることで、3つのコミットをまとめることができます。
最後にまとまったコミットに対してのメッセージを変更しましょう。
やり方は「過去を含めてsqushする」の左にある「メッセージを修正」をクリックして、出てくる画面の文言を変えれば完了です。
![](https://jito-site.com/wp-content/uploads/2024/03/266ed49e7ca47759d88062276b061c61-e1710919684960.jpg)
今回は「テキストの修正」としました。これでOKをクリックします。
これで複数コミットをまとめることができました!
![](https://jito-site.com/wp-content/uploads/2024/03/606a07952aaf88e656666e6753f44c7f-160x160.png)
【注意】SourceTreeで「プッシュしてある」複数コミットをまとめる場合
プッシュしてある複数コミットをまとめる時は注意が必要です。
というのも同じように修正した場合、下記のように枝分かれしてしまうため。
![](https://jito-site.com/wp-content/uploads/2024/03/a94a23c48159be682d64926ae6551f5c.jpg)
コミットはまとまってますが、リモートのほうはまとまってないので、枝分かれが起きてしまいます。
![ジト](https://jito-site.com/wp-content/uploads/2022/02/image.jpg)
リモートとローカルの内容が異なってしまう。
この状態でプッシュしようとすると、エラーが起きてしまいます。
![](https://jito-site.com/wp-content/uploads/2024/03/ad30e5ddde16c1cbe3732aa8880f03e5.jpg)
対処法としては「強制プッシュ」をして、枝分かれを1本にすることですね。
ただ複数人で作業していると、整合性がとれなくなったり競合が起きる可能性があるため「非推奨」となっております。
そのためあまりおすすめはしない対処法です。
下記などの状況のみ使う方法とするのが良いですね。
- 自分1人だけのプロジェクト
- メンバー全員がOKしている状況
そんな強制プッシュのやり方は、下記記事にてまとめておりますので参考にどうぞ↓
![](https://jito-site.com/wp-content/uploads/2024/03/88c3f5d12c926c6cb871703ef9713606-160x160.png)
他にもSourcetreeで使えるものをまとめていますので参考にどうぞ↓
![](https://jito-site.com/wp-content/uploads/2024/04/sourctree-summary-160x160.png)
【解決】SourceTreeで複数コミットを1つにまとめる【スカッシュ】:まとめ
- まとめるコミットの1つ手前を選択
- 「インタラクティブなリベースを行う」をクリック
- 過去を含めてsqushする
- コミットメッセージをまとめたものに変える
![ジト](https://jito-site.com/wp-content/uploads/2022/02/image.jpg)
SourceTreeで複数コミットを1つにまとめたい時はためしてみてね!