IntelliJ IDEA - 2022 でコマンドを使用しないで Git を使う

# この記事のターゲット
IntelliJ IDEA - 2022 を使って、ほぼマウスのみで Git の操作をしたい人


# Gitツールウィンドウの見方
## Gitツールウィンドウを開く
![gitツールウィンドウを開く.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/053895e1-145d-22d9-c836-209b3194f718.gif)

画面下部にある「Git」タブをクリックします。
表示されていない場合は、Alt + 9（Windows）または Command + 9（Mac）で表示できます。



## ブランチ一覧でブランチを検索
![ブランチを検索.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/525ea1ca-b42e-2e93-9adc-c58dfa8ea20b.gif)

[Gitツールウィンドウを開き、](#gitツールウィンドウを開く)ブランチ一覧をクリックし、
ブランチ名を入力して検索します。



## ブランチ・コミットを検索
![ブランチ・コミットを検索.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/76bf5103-2b31-ce60-c13a-1e1121fed32d.gif)

[Gitツールウィンドウを開き、](#gitツールウィンドウを開く)コミット履歴の上にある🔍をクリックし、
表示された検索ウィンドウにブランチ名かコミットのハッシュを入力して検索します。

![コミットメッセージでコミットを検索.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/a0d63477-75fe-bbb5-7e4b-0f17150d8ac9.gif)

コミットメッセージで検索する場合は、
コミット履歴の左上にある検索欄をクリックし、コミットメッセージを入力して検索します。



## 表示するブランチの履歴をフィルタリング
![表示するブランチの履歴をフィルタリング.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/3d66a83e-5a92-7b9a-cb15-dfe5febb3ede.gif)

[Gitツールウィンドウを開き、](#gitツールウィンドウを開く)
コミット履歴の上にある フィルタリング項目 →「選択」をクリックし、
フィルタリングしたい内容を入力して検索します。
改行後に続けて入力すると、複数検索できます。



## 差分のファイルを検索し、差分を確認する
![差分のファイルを検索.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/bb650858-9f79-1a93-c55c-29878db21060.gif)

[Gitツールウィンドウを開き、](#gitツールウィンドウを開く)差分ファイル一覧をクリックし、
フォルダ名やファイル名を入力して検索します。

![差分確認.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/c04ccef1-40c4-7d59-91a2-03a6f4da26ca.gif)

差分のファイルをダブルクリックすると、差分の内容を確認することができます。



## コミットのファイルの内容を確認する
![コミットのファイル内容確認.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/809e5ca6-46e0-79ee-0619-4dbb4a1e915f.gif)

[Gitツールウィンドウを開き、](#gitツールウィンドウを開く)ファイルの内容を確認するコミットを右クリックし、
「リビジョンでリポジトリを表示」 をクリックします。

※[ブランチ・コミットを検索](#ブランチコミットを検索)できます。



## ローカルのファイルとコミットのファイルの差分を確認する
![ローカルとの差分を確認.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/2ce43102-53e0-49e4-251d-a6db2015bf28.gif)

[Gitツールウィンドウを開き、](#gitツールウィンドウを開く)ファイルをｈするコミットを右クリックし、
「ローカルと比較」 をクリックします。

※[ブランチ・コミットを検索](#ブランチコミットを検索)できます。



# Git操作方法
## クローン
![クローン.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/6bf4ef3e-f2bd-3215-e8f0-fad03de32884.gif)

画面左上の「ファイル」 → 「新規」 → 「バージョン管理からプロジェクト」 をクリックし、
ポップアップメニュー左上のリポジトリURLを選択して、
URL にリモートリポジトリのURL、
ディレクトリにローカルリポジトリの保存先を入力し、クローンボタンをクリックします。



## 新規ブランチを作成
![新規ブランチを作成.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/58663dd2-73e8-6d27-6857-c84c80b47026.gif)

[Gitツールウィンドウを開き、](#gitツールウィンドウを開く)ブランチを作成するコミットを右クリックし、
「新規ブランチの作成」 → ブランチ名を入力 → 作成ボタン をクリックします。

※[ブランチ・コミットを検索](#ブランチコミットを検索)できます。



## コミット
![コミット.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/8ab5d6f2-a9bb-f85e-1164-79edf1050a0e.gif)

画面左メニューバーの「コミット」をクリックして、
コミットするファイルを選択し、
コミットメッセージを入力してコミットボタンをクリックします。

※「修正」チェックボックスにチェックを入れると、直前のコミットを修正できます。



## リベース
![リベース.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/26d471e9-d050-c6af-345d-e16f151e77c9.gif)

[Gitツールウィンドウを開き、](#gitツールウィンドウを開く)リベース先のブランチのコミットを右クリックし、
「ブランチ `リベース先のブランチ名`」 → 「`リベース先のブランチ名` で `チェックアウトしているブランチ名` をリベース」 をクリックします。

※[ブランチ・コミットを検索](#ブランチコミットを検索)できます。



## インタラクティブなリベース(履歴を整理する)
![インタラクティブなリベース.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/d1c0a115-4fcc-bc12-4554-a7b4647968d0.gif)

[Gitツールウィンドウを開き、](#gitツールウィンドウを開く)リベースを開始するコミットを右クリックし、
「ここから対話的にリベース」をクリックして、表示されたリベースウィンドウでコミットを操作する。

- リワード
    選択したコミットのメッセージを変更する
- スカッシュ
    選択したコミットを上のコミットにまとめて、新しいメッセージに変更する
- フィックスアップ
    選択したコミットを上のコミットに統合する
- 破棄
    選択したコミットを削除する

※[ブランチ・コミットを検索](#ブランチコミットを検索)できます。



## ロールバック(git restore に相当)
![ロールバック.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/adcc982c-b58f-c463-58f8-8e9e8994d16b.gif)

画面左メニューバーの「コミット」をクリックして、
コミットメニューのファイル一覧を左クリック → 「ロールバック」をクリックし、
ロールバックするファイルを選択してロールバックボタンをクリックします。



## プッシュ
![プッシュ.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/7110711b-9e23-b5ba-8f75-ed76f96c7383.gif)

[Gitツールウィンドウを開き、](#gitツールウィンドウを開く)
ブランチ一覧のブランチ名を右クリック → 「プッシュ」をクリックします。

※[ブランチ一覧でブランチを検索](#ブランチ一覧でブランチを検索)できます。



## フェッチ
![フェッチ.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/d8c06a4c-389d-3c9b-94d2-8dddc5414c7b.gif)

[Gitツールウィンドウを開き、](#gitツールウィンドウを開く)左下にある ⇙ をクリックします。



## リセット
![リセット.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/0f1db479-ab7e-b0a8-cb62-9b12215ca9de.gif)

[Gitツールウィンドウを開き、](#gitツールウィンドウを開く)リセット先のコミットを右クリックし、
「現在のブランチをここにリセット」 → モードを選択 → リセットボタンをクリックします。

※[ブランチ・コミットを検索](#ブランチコミットを検索)できます。



## チェックアウト
![チェックアウト.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/cf7565ef-590d-3f9a-3c9b-a9d2c282e9b4.gif)

[Gitツールウィンドウを開き、](#gitツールウィンドウを開く)チェックアウトするコミットを右クリックし、
「チェックアウト」 → ブランチ名 または コミットハッシュ をクリックします。

※[ブランチ・コミットを検索](#ブランチコミットを検索)できます。



## 更新(git pull に相当)
![更新.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/670c277d-0242-0156-ffd2-ef8ea8c12274.gif)

[Gitツールウィンドウを開き、](#gitツールウィンドウを開く)
ブランチ一覧のブランチ名を右クリック → 「更新」をクリックします。

※[ブランチ一覧でブランチを検索](#ブランチ一覧でブランチを検索)できます。



## 行ったGitの操作を取り消す<br>(IntelliJ 上で操作ができないため、git reset HEAD@{n}を使用)
![Git操作の取り消し.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/8515ec1a-c329-c9c7-4eeb-ca6803bf1da7.gif)

※動画は例として、リベース実行前に戻す作業をしています。

画面下部にある「ターミナルタブ」をクリックします。

Windows をお使いで、PowerShell が表示された方は、
コマンドにエスケープが必要になってしまうので、
Git Bash をご使用いただくことをおすすめします。

`git reflog` を実行して、戻りたい操作の履歴の番号を確認し、
q を入力してページャーを終了して、
`git reset HEAD@{n}` を実行します。



## 競合を解決
![競合を解決.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/05aad0e8-edff-ea78-2f5a-eec349004ef3.gif)

競合解決画面で、
入れたい変更点は矢印を押して入れ、いらない変更点は×を押して削除し、
全ての競合が解決したら、適用ボタンを押します。



## マージ
![マージ.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/6cff7866-2cef-75fb-c341-1f45b625e6a6.gif)



## ブランチ名の変更
![ブランチ名の変更.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/0d353462-f316-7d40-024e-e21c6c26da74.gif)



## ブランチの削除
![ブランチの削除.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/29571b78-64bf-8901-462a-79498b8c16e6.gif)



# ファイルの状態を表すテキスト色
<img width="400" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/0acbeb12-5cd4-1ecf-da2f-c64add50e255.png">

IntelliJでは、Gitの状態がアイコンでわかりやすく表示されます。

緑色のファイル名: 新規に追加されたファイル。
青色のファイル名: 変更されたファイル。
赤色のファイル名: 無視されたファイル（IntelliJ上でGit管理外に指定しているもの）。
灰色のファイル名: 削除されたファイル。



# まとめ
IntelliJのGit操作は視覚的に分かりやすく、
Gitツールウィンドウと画面上部メニューからほとんどの操作が可能であり、
初心者にも使いやすい設計です。

ショートカットや差分表示、コンフリクト解決ツールを活用するとさらに便利です。