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

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

関連記事

Androidアプリ開発を行う前に知っておきたかったこと

Androidアプリ開発を行うようになってから半年以上経過しました。 最初の頃に比べてると習熟度は上がったと思うのですが、まだまだ知らないことが多くて毎日勉強の日々です。 自分がAndroidアプリ開 …

Airbnb Epoxyについて

最近RecyclerViewを使うときにAirbnb製のEpoxyというライブラリを使っています。 素のRecyclerViewだと、データが特定の状態のときにレイアウトを変えたい場合、少しごちゃごち …

いつの間にかBottomNavigationにBadge機能がついていた・・・

先日、たまたまmaterial-components-androidのCatalogアプリを見ていたらBottomNavigationにBadge機能がついていました。 これ、最近追加されたんですかね …

ProGuardからR8への移行

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

JetpackのWorkManagerのメモ

JetpackのWorkManagerのメモです。 WorkManagerとは Jetpackのコンポーネントで、スケジュールタスクのようなものを実行する 即時性は求めないがアプリが終了した、端末が再 …