Android

IntelliJ IDEA(AndroidStudio)でもgit rebase squashできるよ!

投稿日:

普段開発しているとGitを使ってバージョン管理することが多いと思います。
その時によくローカルブランチを作って、変更をガンガンコミットしていきます。
ある程度実装してリモートブランチにマージする時に、squashしてコミットを一つにまとめるとおもうのですがIntelliJ IDEAでもsquashして一つのコミットに変更することができます。
またAndroidStudioでも当然ですができます。
今回はAndroidStudioでやってみました。

squashのやりかた

例えば以下のような場合です。

コミットメッセージがふざけているのはご容赦ください。
ローカルで作業するにしてもわかりやすいコミットメッセージが好ましいです。

コミットログを操作するため当然ですがローカルブランチで行ってください。
リモートにプッシュしてあるブランチで操作するとおかしくなります。

IntelliJのメニューからVCS -> rebaseを選択します。
すると以下のような画面が表示されます。

今回はdevelopブランチの内容を一つにまとめたいのでbranchにはdevelopを指定します。
ontoはmasterを指定します。ontoに指定したブランチが示すコミットの上に変更がコミットされます。説明が難しい・・。
指定したらRebaseをクリックします。

すると対象になるコミット一覧が表示されます。
ここでActionをsquashにしていきます。

さすがIntellJさん、当然のように複数選択に対応してます。
対象となるコミットを選択して右クリックするとポップアップメニューが表示されるので今回はsquashを選択します。

無事にsquashが設定されました。

Start Rebaseボタンを押すとコミットメッセージの入力を求められるので入力します。

するとこんな感じでsquashが行われてコミットが一つになりました。

あとはリモートにプッシュするなりマージするなりすると良いです。

まとめ

もちろんgitコマンドでもできるのですが、自分はIntelliJを使ったほうが楽なので最近はGUIを使っています。
GitKrakenは更に簡単でGUIのヒストリー上からコミットを選択してsquashできたような気がします。
なおSourceTreeでsquashするやり方が未だにわからないです・・・。

-Android

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

Firebaseにプロジェクトを追加する手順

Androidアプリを公開するときFirebaseを使っている方がほとんどだと思うのですが、自分で設定したことがありませんでした。 今回サンプルプロジェクトですが、Firebaseに設定してみました。 …

ProGuardからR8への移行

AndroidStudio 3.4からコードシュリンカー・難読化にR8がデフォルトで使用されるようになりました。 自分が担当していアプリではProGuardは一般的な用途でしか使っていなかったのですが …

AndroidStudioのLayout XMLのフォーマット設定

AndroidStudioで新しいプロジェクトを作るたびにLayout XMLの属性フォーマット設定方法を忘れるのでメモです。 AndroidStudioで以下の設定を開きます。 File | Set …

Firebase Authenticationを設定する

先日、Firebaseプロジェクトを作成しアプリを追加しました。 Firebaseにプロジェクトを追加する手順 今回はFirebaseのAuthenticationを設定してみようと思います。 Fir …

Android Internal App Sharingのメモ

仕事でGoogle Play ConsoleのInternal App Sharingを使う機会があったのでメモを残します。 ##導入の経緯 アプリでAndroid app Bundleを導入する必要 …