意外と知らないIntelliJ IDEAのGit管理機能いろいろ（´-`）

新卒２年目の大久保です。（´-`）

IntelliJ IDEA使い始めて結構経つんですが、未だに機能を活用しきれてないなと感じます。。（´-`）

特にGit周りに関しては知ってると便利な機能いろいろあるので、学習も兼ねていくつかピックアップしてまとめてみました。（´-`）

例で使用しているコードの言語はScalaです。


## Annotate機能

### 現在表示されてるファイルの各行の最終更新日と更新者を確認
ファイルの行番号とかの横にGitのコミット情報を表示できます。
git blameとほぼ同じですね。

＜やり方＞
行番号が表示されてるとこを右クリック -> [Annotate]選択

![annotate_1-compressor.gif](http://img.gifmagazine.net/gifmagazine/images/670119/original.gif?1447763807 "annotate_1-compressor.gif")


### コミットの差分を表示
Annotateによって表示された行を選択することで、そのコミットにおける各ファイルの差分を表示できます。

＜やり方＞
行番号が表示されてるとこを右クリック -> [Annotate]選択 -> 表示された行をダブルクリック -> ファイル選択

![annotate_1-compressor.gif](http://img.gifmagazine.net/gifmagazine/images/670120/original.gif?1447763891 "annotate_1-compressor.gif")


## Git Branches
### ブランチの移動、削除、マージなど
ブランチのcheckoutやmergeなどを行えます。
git branchですね。

＜やり方＞
画面右下のGit Branchesメニューをクリック -> ブランチ選択

![git_branches_1-compressor.gif](http://img.gifmagazine.net/gifmagazine/images/670125/original.gif?1447764126 "git_branches_1-compressor.gif")


## Version Control

### 最終コミットからの変更の差分を確認

最終コミットとローカル環境で変更した差分を簡易的に表示できます。

＜やり方＞
画面左下のVersion Controlメニューをクリック -> [Local Changes]タブを選択 -> ファイルをクリック -> 左の![スクリーンショット 2015-11-19 9.10.46.png](https://qiita-image-store.s3.amazonaws.com/0/7885/8d78bf7f-150c-2d4f-4d50-34ef545725b2.png "スクリーンショット 2015-11-19 9.10.46.png")をクリック

![version_control_1-compressor.gif](http://img.gifmagazine.net/gifmagazine/images/670149/original.gif?1447765037 "version_control_1-compressor.gif")


### 過去の変更点との差分表示
gitのLogから現在のファイルと過去のリビジョンとの差分表示ができます。
git diffですね。

＜やり方＞
画面左下のVersion Controlメニューをクリック -> [Log]タブを選択 -> リビジョンを選択 -> 左の<img width="25" alt="スクリーンショット 2015-11-19 9.44.52.png" src="https://qiita-image-store.s3.amazonaws.com/0/7885/36e11628-2426-2f69-3acc-dd4af30823e1.png">
をクリック

![log_1-compressor.gif](http://img.gifmagazine.net/gifmagazine/images/670135/original.gif?1447764609 "log_1-compressor.gif")


### 過去の変更点の復元など
gitのLogから過去のリビジョンを復元ができます。
git resetですね。

＜やり方＞
画面左下のVersion Controlメニューをクリック -> [Log]タブを選択 -> リビジョンを右クリック -> [Reset]

![git_reset_1-compressor.gif](http://img.gifmagazine.net/gifmagazine/images/670130/original.gif?1447764244 "git_reset_1-compressor.gif")



## Show History

### 現在のファイルの過去の変更点を確認

現在のファイルのGitログから過去の変更点とその変更内容を差分表示できます。
git diffですね。

＜やり方＞
ファイル上で右クリック -> [Git]選択 -> [Show History]選択 -> リビジョンをダブルクリック

![show_history_1-compressor.gif](http://img.gifmagazine.net/gifmagazine/images/670140/original.gif?1447764858 "show_history_1-compressor.gif")


### プロジェクト全体の過去の変更点を確認

プロジェクト全体での変更ファイルとその変更内容を差分表示できます。
git diffですね。

＜やり方＞
ディレクトリを右クリック -> [Git]選択 -> [Show History]選択 -> リビジョンをダブルクリック -> ファイルを選択

![show_history_2-compressor.gif](http://img.gifmagazine.net/gifmagazine/images/670142/original.gif?1447764897 "show_history_2-compressor.gif")





## Stash機能

### 変更内容の一時保存

GitのStash機能を使って現在の変更内容を一時的に保持できます。

＜やり方＞
メニューバーのVCSをクリック -> [Git]選択 -> [Stash Changes]選択 -> メッセージを入力 -> [Create Changes]

![stash_1-compressor.gif](http://img.gifmagazine.net/gifmagazine/images/670143/original.gif?1447764934 "stash_1-compressor.gif")


### 一時保存した変更内容の復元

GitのStash機能を使って現在のStashにある変更履歴から変更内容を確認・復元できます。

＜やり方＞
メニューバーのVCSをクリック -> [Git]選択 -> [UnStash Changes]選択 -> 変更内容確認 -> [Apply Stash]

![stash_2-compressor.gif](http://img.gifmagazine.net/gifmagazine/images/670146/original.gif?1447764983 "stash_2-compressor.gif")



##VCSから変更ファイルの差分確認

### 現在の編集内容を一括確認

現在のローカル環境の変更ファイルを一括で確認できます。

＜やり方＞
メニューバーのVCSをクリック -> [Show Changes]選択 -> ファイル選択

![show_changes_1-compressor.gif](http://img.gifmagazine.net/gifmagazine/images/670139/original.gif?1447764787 "show_changes_1-compressor.gif")



### チェンジリストを使った変更ファイルの管理

チェンジリストを作成して、変更をファイル単位でまとめて管理できます。
以下は、チェンジリストを２つ作成して別々にコミットしている例です。

＜やり方＞
右下のVersion Controlを選択 -> [Local Changes]タブを選択 -> 右の＋ボタンでチェンジリストを作成 -> 変更ファイルをその中に移動 -> チェンジリストを右クリック -> [Commit Changes]

![changelist_1-compressor.gif](https://media.giphy.com/media/3o85xGtR2N7j7p7BQs/giphy.gif "changelist_1-compressor.gif")



### マージ＋コンフリクト解消

マージして、コンフリクトが発生した時もIntelliJ上で修正できます。

＜やり方＞
メニューバーのVCSをクリック -> [Git]選択 -> [Merge Changes]選択

![merge_1-compressor.gif](http://img.gifmagazine.net/gifmagazine/images/670137/original.gif?1447764668 "merge_1-compressor.gif")





## Local History

### ファイルの変更履歴の表示

ローカル環境の変更履歴とそれぞれの変更での差分を一覧表示できます。
（´-`）.o◯(Gitの機能ではない気がしますが、ついでに貼っときます。。)

＜やり方＞
ファイル上で右クリック -> [Local History]選択 -> [Show History]選択

![local_history_1-compressor.gif](https://media.giphy.com/media/3o85xI6Egr2j49l2QU/giphy.gif "local_history_1-compressor.gif")


## その他

### 変更行を最終コミット状態に戻す
部分的な変更箇所を変更前の状態と比較して、元に戻したりDiffを表示させたりできます。
git checkoutやgit diffですね。

＜やり方＞
変更行の青く色が変わってる箇所をクリック -> [Rollback]をクリック

![other_1-compressor.gif](http://img.gifmagazine.net/gifmagazine/images/670138/original.gif?1447764758 "other_1-compressor.gif")

#### 参考
http://d.hatena.ne.jp/masanobuimai/20130518/1368867743#20130518f2
http://hogesuke.hateblo.jp/entry/2014/08/13/202229

***

本記事はセプテーニオリジナル開発者ブログの転載です。
http://labs.septeni.co.jp/entry/2015/11/19/100036