時給単価UP【3大特典付き】
コーディングテクニック集100選⋙

【解決】SourceTreeで複数コミットを1つにまとめる【スカッシュ】

記事内に広告を含みます

プッシュしてある場合は枝分かれしてしまうため注意。最後のセクションを見てください

パソ君
パソ君

・SourceTreeでコミットをまとめる方法ある?

こんな疑問にお答えします。

コミットが多くなりまとめたい場合ありますよね。

例として下記画像のように「テキストを修正しました」「02」「03」等のコミットを、1つにして短くしたいなど。

実はそれSourceTreeなら簡単に可能です。

ジト
ジト

すぐにできるよ!

ということで、この記事では「SourceTreeで複数コミットを1つにまとめる方法」について解説していきます!

この記事でわかること

・SourceTreeで複数コミットを1つにまとめる方法
・プッシュしてしまったコミットの場合の対処

【解決】SourceTreeで複数コミットを1つにまとめる【スカッシュ】

プッシュしてある場合は枝分かれしてしまうため注意。最後のセクションを見てください

実はSourceTreeにて複数のコミットを1つにまとめることができます。

そんな手順がこちら↓

  • まとめるコミットの1つ手前を選択
  • 「インタラクティブなリベースを行う」をクリック
  • 過去を含めてsqushする
  • コミットメッセージをまとめたものに変える

順に解説してきます。

➀:まとめるコミットの1つ手前を選択

まずまとめようと思うコミットの1つ手前を選択します。

今回でいうと「テキスト修正しました〜」の3つのコミットをまとめたいので、その手前の「test01」となります。

➁:「〜の子を対話形式でリベース」をクリック

そしたら右クリックをします。

すると下記画像のような項目が出るので「〜の子を対話形式でリベース」をクリックしましょう。

※Windowsだと「~の子とインタラクティブなリベースを行う」との文言の可能性があります

➂:過去を含めてsqushする

すると下記画像のようになるので、一番上のコミットを選択して「過去を含めてsqushする」をクリックします。

こうすることで「テキストを修正しました03」と「テキストを修正しました02」がまとまり下記のようになります。

「過去を含めてsqushする」をクリックすれば、1つ前のコミットと選択したコミットがまとまるということですね。

そのためもう一度「squshする」をクリックすることで、3つのコミットをまとめることができます。

④:コミットメッセージをまとめたものに変える

最後にまとまったコミットに対してのメッセージを変更しましょう。

やり方は「過去を含めてsqushする」の左にある「メッセージを修正」をクリックして、出てくる画面の文言を変えれば完了です。

今回は「テキストの修正」としました。これでOKをクリックします。

これで複数コミットをまとめることができました!

【解決】SourceTreeでコミットメッセージを修正する方法

【注意】SourceTreeで「プッシュしてある」複数コミットをまとめる場合

プッシュしてある複数コミットをまとめる時は注意が必要です。

というのも同じように修正した場合、下記のように枝分かれしてしまうため。

コミットはまとまってますが、リモートのほうはまとまってないので、枝分かれが起きてしまいます。

ジト
ジト

リモートとローカルの内容が異なってしまう。

この状態でプッシュしようとすると、エラーが起きてしまいます。

強制プッシュをすれば対処できるが注意

対処法としては「強制プッシュ」をして、枝分かれを1本することですね。

ただ複数人で作業していると、整合性がとれなくなったり競合が起きる可能性があるため「非推奨」となっております。

そのためあまりおすすめはしない対処法です。

下記などの状況のみ使う方法とするのが良いですね。

  • 自分1人だけのプロジェクト
  • メンバー全員がOKしている状況

そんな強制プッシュのやり方は、下記記事にてまとめておりますので参考にどうぞ↓

【解説】SourceTreeで強制プッシュする方法【許可/有効化】

他にもSourcetreeで使えるものをまとめていますので参考にどうぞ↓

【解説】SourceTreeでよく使うものをまとめてみた

【解決】SourceTreeで複数コミットを1つにまとめる【スカッシュ】:まとめ

  • まとめるコミットの1つ手前を選択
  • 「インタラクティブなリベースを行う」をクリック
  • 過去を含めてsqushする
  • コミットメッセージをまとめたものに変える
ジト
ジト

SourceTreeで複数コミットを1つにまとめたい時はためしてみてね!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA