EGit逆引きリファレンス（コミット関連）

#環境
・Eclipse(4.4.2) Luna SR2
・EGit3.4.2

#目次
1.コミット関連
2.[ブランチ操作関連](http://qiita.com/t-mito/items/977013ca3c30db7450ec)

#ステージングしたい（git add）
1.Git Stagingビューを使う場合
Unstaged Changesエリアに表示されているファイルをStaged Changesエリアにドラッグ。
![add.PNG](https://qiita-image-store.s3.amazonaws.com/0/32056/6b6a0b48-d33d-e0d8-e043-193582942c19.png)

2.コンテキストメニューを使う場合
ファイル（フォルダ）を選択して右クリック→「Team」→「Add to Index」


#ステージングを取り消したい（git reset HEAD）
1.Git Stagingビューを使う場合
Staged Changesエリアに表示されているファイルをUnstaged Changesエリアにドラッグ。
![reset.PNG](https://qiita-image-store.s3.amazonaws.com/0/32056/fbc75410-3262-fdf8-59be-d70592e15db2.png)

2.ファイルのコンテキストメニューを使う場合
ファイル（フォルダ）を選択して右クリック→「Team」→「Remove from Index」

3.Historyビューを使う場合
HistoryビューからHEADのコミットを選択して右クリック→「Reset」→「Mixed(HEAD and Index)」
![reset2.png](https://qiita-image-store.s3.amazonaws.com/0/32056/4076bf1e-7ed7-6382-e070-ff2af7656bb6.png)

#同一ファイル内にある変更の一部のみをステージングしたい（git add -p）
Git StagingビューのUnstaged Changesエリアにあるファイルをダブルクリック。LocalとIndexとの比較エディタが開いたことを確認したら、Local側のステージングしたい部分を選択して「Copy Current Changes from Left to Right」ボタンをクリックして保存。
![add2.png](https://qiita-image-store.s3.amazonaws.com/0/32056/3784c501-7d4b-89ef-bca7-38ee25139e53.png)

#コミットしたい（git commit）
1.Git Stagingビューを使う場合
Commit Messageを入力してCommitボタンをクリック。
![commit2.png](https://qiita-image-store.s3.amazonaws.com/0/32056/59572373-4cc8-7ec4-f502-c1c4cd9aaca9.png)

2.ファイルのコンテキストメニューを使う場合
ファイル（フォルダ）を選択して右クリック→「Team」→「Commit」。Commit Changesダイアログが開いたらコミットコメントを入力してCommitボタンをクリック。
![commit.png](https://qiita-image-store.s3.amazonaws.com/0/32056/ca22ffed-3370-b285-5d76-fc3b27092d9a.png)
※ファイルの一覧にはステージングしていないファイルもデフォルトで表示される。またStatusにチェックを入れればステージングしていなくてもコミットできる。

#コミットを取り消したい（git reset --soft/--hard）
Historyビューから取り消したいコミットの一つ前（戻りたいコミット）を選択して右クリック→「Reset」→「Soft(HEAD Only)」（もしくは変更そのものも消したい場合は「Hard(HEAD, Index, and Working Directory)」）
![reset3.png](https://qiita-image-store.s3.amazonaws.com/0/32056/b8129df0-b824-78c4-d74c-c90c22babdd7.png)

#直前のコミットコメントを修正したい（git commit --amend）
Git StagingビューのAmend Previous Commitボタンをクリック。コメント欄に直前のコミットコメントが表示されるので、修正して再コミット。
![commit3.png](https://qiita-image-store.s3.amazonaws.com/0/32056/c5aceb28-13c6-0712-25b1-fdecd8e3cbe0.png)
※ステージングすればファイルの追加も可能。

#過去のコミットコメントを修正したい
Historyビューから修正したいコミットのひとつ前のコミットを選択して右クリック。→「Rebase Interactive」
（図はsecond commitを修正したいので、first commitを選択している）
![comment.png](https://qiita-image-store.s3.amazonaws.com/0/32056/9c47de02-dac3-c2c8-5dc2-2303c2abc184.png)

「Git Interactive Rebase」ビューが開くので修正したいコミットを選択しActionカラムの「PICK」をRewordボタンをクリックして「REWORD」に変更。
![comment2.png](https://qiita-image-store.s3.amazonaws.com/0/32056/63d10af2-af39-0d81-f43a-de623d65dc2d.png)
「Start」ボタンをクリックするとコミットコメントを入力するダイアログが出るので修正して「OK」をクリック。
![comment3.png](https://qiita-image-store.s3.amazonaws.com/0/32056/70352979-633b-479f-49ed-030581f10f7e.png)

#過去のコミットを修正したい
Historyビューから修正したいコミットのひとつ前のコミットを選択して右クリック。→「Rebase Interactive」
（図は2nd commitを修正したいので、first commitを選択している）
![commit4.png](https://qiita-image-store.s3.amazonaws.com/0/32056/9ace9d6c-b2f7-eebf-267e-6299d5abe4f9.png)

「Git Interactive Rebase」ビューが開くので修正したいコミットを選択しActionカラムの「PICK」をEditボタンをクリックして「EDIT」に変更。
![commit5.png](https://qiita-image-store.s3.amazonaws.com/0/32056/bbdb63a8-6f7f-1f22-caea-04eb31200b09.png)

「Start」ボタンをクリックすると修正したいコミットがチェックアウトされた状態になるので、修正を実施。修正したら、通常通り、ステージング→コミット。
コミットが終わったら「Git Interactive Rebase」ビューの「Continue」をクリック。
![commit6.png](https://qiita-image-store.s3.amazonaws.com/0/32056/19870a50-8e48-9688-8f33-268f8de1831a.png)

#複数のコミットをまとめたい
1.Historyビューを使う場合
Historyビューからまとめたい複数のコミットを選択して右クリック。→「Modify」→「Squash」
（図は2nd commitと3rd commitをまとめたい場合の例）
![squash1.png](https://qiita-image-store.s3.amazonaws.com/0/32056/40cb5bac-3973-2a6f-c944-94120a395412.png)
コミットコメントを入力するダイアログが出るので修正して「OK」をクリック。
![squash2.png](https://qiita-image-store.s3.amazonaws.com/0/32056/967a80cc-1239-11c6-2065-2bcdb9a89134.png)

2.Historyビュー(Interactive Rebase)を使う場合
Historyビューからまとめたいコミットのひとつ前のコミットを選択して右クリック。→「Rebase Interactive」
（図は2nd commitと3rd commitをまとめたいので、first commitを選択している）
![squash3.png](https://qiita-image-store.s3.amazonaws.com/0/32056/0dea8a7d-3d3d-c312-15d4-d63ebcc7ee5d.png)

「Git Interactive Rebase」ビューが開くのでまとめたいコミットを選択しActionカラムの「PICK」をSquashボタンをクリックして「SQUASH」に変更。
※ふたつのコミットまとめる場合、時系列的に前のコミットをPICK、後のコミットをSQUASHにする。
![squash4.png](https://qiita-image-store.s3.amazonaws.com/0/32056/bf3cf50f-332d-4ab7-9d94-3c87432e4a90.png)
コミットコメントを入力するダイアログが出るので修正して「OK」をクリック。
![squash5.png](https://qiita-image-store.s3.amazonaws.com/0/32056/ad3a5fe8-4423-6711-ba74-2e3d919d77a7.png)