【Sourcetree】Push済みの複数コミットを1つに纏める方法
実作業で、何度も軽微な修正(変数名の変更とか)や、コメントの修正のような細かいコミットをPushしていると・・・ふと、
こんな意味も、内容も薄い、しょうもないコミット履歴・・・1つに纏めれないかなぁ
・・・と、思う事はないでしょうか?
できれば面倒なコマンドを使う事なく、Sourcetree のGUIだけで。
という事で、今回は Sourcetree のGUIのみで複数コミットを1つに纏める方法を調査したので、メモ代わりにブログで紹介したいと思います。
事前準備
この作業では「強制プッシュ」が必要になります。
そのため、事前に「強制プッシュ」を使用できるよう、Sourcetree の設定を変更しておきます。
(デフォルトでは「強制プッシュ」は使用できないようになっています)
メニューの「ツール」>「オプション」で オプションの設定画面を開き、タブの「Git」を選択します。
ここで「強制プッシュを有効にする」にチェックを入れて「OK」を押下します。

」というコミットが作成されます。
」を選択し、再度「前のコミットとスカッシュ」を実行し「test_01_add」のコミットも統合してしまいます。
」と一つ下の「test_01_add」が統合され「test_03_add(+2 squashed commits)」というコミットが作成されます。
これで、「test_01_add」、「test_02_add」、「test_03_add」の3つのコミットが1つに纏められた事になります。
」を選択し、「メッセージを編集」ボタンを押下します。

![](/api/media/clmedia000000000000000179/file" 4.統合したコミットを上書きPush
統合したコミットを確定するために「プッシュ」ボタンを押下します。
![](/api/media/clmedia000000000000000180/file"
ここで枝分かれしている樹系図を上書きして1つにするために「強制プッシュ」にチェックして「プッシュ」ボタンを押下します。
![]( /api/media/clmedia000000000000000181/file"
![](/api/media/clmedia000000000000000182/file" 5.内容確認
上書きPushを実行すると、下図のように統合したコミットで、コミット履歴が更新されます。
内容を見ると分かりますが、Push済みの3つのコミットが1つに纏まった形となります。
![](/api/media/clmedia000000000000000183/file" 最後に
ここでは内容を理解しやすいよう、 master ブランチを使用して記載しています。
しかし常識的に、実務のような複数人で開発する環境下の masterブランチやdevelopブランチで、このようなコミット履歴を改ざんする処理は行うべきではありません。
あくまで、マージ前の自身の作業ブランチでのみ使用するのが、Gitを運用する上でのマナーだと思います。
上記を理解した上で、今回紹介した方法を使用して頂ければと思います。
以上で「【Sourcetree】Push済みの複数コミットを1つに纏める方法」は終了となります。
お読み頂き、ありがとうございました。