2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IntelliJでのgit操作

Last updated at Posted at 2023-12-11

IntelliJでgitを使う

kb advent calendar 11日目の記事です。

IntelliJユーザーで数年ほど課金して使っています。
最近はgitの操作もコマンドですることが減り、IDE上で完結することが多いです。
IntelliJのgit操作について、便利な機能を紹介します。

通常操作

よく使うコマンドは、pull,commit,push,new branch,checkout,merge,stash/unstashくらいです。
このあたりはショートカットを覚えれば、コマンドラインでやるよりもわりと早く作業出来る気がします。

  • pull(⌘+T)
  • commit(⌘+K)
  • push(⌘+⇧+K)
  • new branch(⌘+⌥+N)
  • checkout(⌘+⇧+P)
  • merge(⌘+⇧+A -> merge)
  • stash/unstash(⌘+⇧+A -> stash / ⌘+⇧+A -> unstash)

コンフリクト解消

コンフリクトが発生した場合は、IDE上で解消することが出来ます。
上記のmergeコマンドを実行すると、コンフリクトが発生した場合はコンフリクト解消画面に移動します。
再度この画面を出したいときはLocal ChangesのResolveボタン、もしくはショートカット(⌘+⇧+A -> resolve conflicts)で出せます。
image.png
img_3.png

Shelf

shelfは、stashと同じように変更を一時的に退避する機能です。

shelfはintellij独自の機能で、stashとは違い、変更を退避するだけでなく、変更を別のブランチにコミットすることも出来ます。

コードを書いている途中で、別のブランチに移動したい場合に便利です。

退避させたい変更がある状態で、Shelve Changesを選択(⌘+⇧+A -> Shelve Changes)すると、Shelf画面が表示され、名前を付けて退避することが出来ます。

または、以下のように、現在の変更がある際にチェックアウトした際、Smart Checkout画面が表示されます。
この際にForce Checkoutを選択すると現在の変更は削除されますが、Smart Checkoutを選択すると、現在の変更をチェックアウト先のブランチにマージする画面に遷移し、そこでskipを選択すると現在の変更をShelfに退避することが出来ます。

img_4.png

退避した変更は、Shelfタブから確認・復元することが出来ます。

img_6.png

コミット修正

過去のコミットを修正したい場合、リベースを行います。

ここでは、3つ前の テストコミット2 に修正を加える例を紹介します。

img_8.png

まず、リベースを行うコミットの一つ前のコミットを選択し、右クリックから Interactive Rebase を選択します。

img_9.png

すると、Interactive Rebase画面が表示されるので、修正したいコミットの Stop to Edit を選択し、 Start Rebase をクリックします。

image.png

すると、編集したいコミットの変更が行われた状態で、該当のコミットに黄色いラベルが付きます。

img_11.png

ここで、該当のコミットを修正するため、 テストコミット2 を選択し、Undo Commit を選択します。

img_12.png

そうすると、コミットが取り消され、テストコミット2 の変更をコミットする前の状態に戻ります。

img_13.png

行いたかった修正を行い、コミットします。

img_14.png

コミット後、ブランチ一覧から、Continue Rebase をクリックすると、コンフリクト解消画面に遷移するので、コンフリクトを解消します。

img_15.png

コンフリクト解消後、 Continue Rebase をクリックすると、リベースが完了し、以下のように過去のコミットが修正されていることが確認できます。

img_17.png

まとめ

IntelliJを使用したgit操作について、自分がよく使う便利な機能を紹介しました。 gitの操作をIDE上で完結させることで、コマンドラインでの操作よりも作業効率が上がると思います。 ぜひ、参考にしてみてください。

ちなみにWorkTreeを作成したりなどは出来ないようなので、そういったことはコマンドラインでやる必要があります。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?