EGit逆引きリファレンス（ブランチ操作関連）

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

#ブランチを切りたい（git branch）
1.コンテキストメニューを使う場合
プロジェクトのルートを選択して右クリック→「Team」→「Switch To」→「New Branch...」
![new_branch.png](https://qiita-image-store.s3.amazonaws.com/0/32056/68141be1-703f-7eea-2336-18890dfbc60a.png)

ダイアログが開いたらブランチ名を入力して「Finish」をクリック。
![new_branch2.png](https://qiita-image-store.s3.amazonaws.com/0/32056/e70a2b03-0e75-82d8-b65b-cf05c37b2eb2.png)

2.Historyビューを使う場合
※任意のコミットからブランチを派生させたい場合はこの方法が便利。
Historyビューからブランチを切りたいコミットを選択して右クリック→「Create Branch...」
![new_branch3.png](https://qiita-image-store.s3.amazonaws.com/0/32056/9154c397-b59c-dbcf-d3b3-0ab363fcce39.png)


ダイアログが開いたらブランチ名を入力して「Finish」をクリック。


#ブランチを移動したい（git checkout）
1.コンテキストメニューを使う場合
プロジェクトのルートを選択して右クリック→「Team」→「Switch To」→移動したいブランチ名（この例ではtopicブランチ）
![checkout.png](https://qiita-image-store.s3.amazonaws.com/0/32056/9ca25f3c-215c-c8eb-11e1-526c906fbdab.png)

2.Historyビューを使う場合
Historyビューから移動したいブランチを含むコミットを右クリック→「Checkout...」
![checkout2.png](https://qiita-image-store.s3.amazonaws.com/0/32056/8b7c835c-35d1-e514-13a9-34551aeada3d.png)

ダイアログが開いたら移動したいブランチを選択して（この例ではtopicブランチ）、「OK」をクリック。
![checkout3.png](https://qiita-image-store.s3.amazonaws.com/0/32056/13bec3d7-6bb0-99cc-28c9-6cb5018819db.png)


#ふたつのブランチをマージしたい（git merge）
前提
※masterブランチにtopicブランチの内容をマージする。
※マージ開始前にmasterブランチをチェックアウトしていること。

1.コンテキストメニューを使う場合
プロジェクトのルートを選択して右クリック→「Team」→「Merge...」
![merge1.png](https://qiita-image-store.s3.amazonaws.com/0/32056/9bc074c1-ae9b-6dfb-e849-6bbda692df1e.png)

マージのダイアログが開いたらマージしたいブランチを選択（この例ではtopicブランチ）
![merge2.png](https://qiita-image-store.s3.amazonaws.com/0/32056/23ecab4c-da5f-f4df-a1cb-f861c4fbe963.png)

Mergeボタンをクリック。マージ結果が表示され、コミットツリーでマージされていることを確認。
![merge3.png](https://qiita-image-store.s3.amazonaws.com/0/32056/4376c582-f8f4-2d27-aa8f-29001199425c.png)

※マージオプションを都度指定したい場合は、こちらの方法で。

2.Historyビューを使う場合
Historyビューからマージしたいブランチを右クリック→「Merge...」
![merge4.png](https://qiita-image-store.s3.amazonaws.com/0/32056/8f200188-5aee-3fa3-b4af-10f2f3e07d14.png)

マージ結果が表示され、コミットツリーでマージされていることを確認。
![merge5.png](https://qiita-image-store.s3.amazonaws.com/0/32056/aef4c1bf-acf1-fa95-442a-241852814650.png)

※メニューから「Merge...」を選択するとすぐにマージが実行されるので注意

#マージで衝突が起きたら
前提
※以下のようにマージ時に衝突が発生。
※ファイルに赤い双方向矢印、ブランチ名の左に「Conflicts」とあるのを確認。
![conflict.png](https://qiita-image-store.s3.amazonaws.com/0/32056/b40447af-7ac9-1681-6913-741d838d705e.png)

まず、衝突した箇所のコードを修正する。
修正が完了したら、そのファイルをステージングする。
![conflict2.png](https://qiita-image-store.s3.amazonaws.com/0/32056/d9de0022-4930-37a3-379a-166b189433c0.png)

Merge済みであること、またコミットコメントに衝突があったことを示すコメントが挿入されていることを確認。

エクスプローラでもコミットが解消されマージ済みであることが確認できる。
![conflict3.png](https://qiita-image-store.s3.amazonaws.com/0/32056/26b1c5de-3374-66dc-a676-d9a17c7cc757.png)

問題なければコミットを実行。コミットが正常に終了すれば完了。
![conflict4.png](https://qiita-image-store.s3.amazonaws.com/0/32056/2d4be57f-c811-73fe-db42-cbe4d3292575.png)

マージ中、衝突発生中でないことを確認。

#別ブランチのコミットをコピーしたい（git cherry-pick）
Historyビューからコピーしたいコミットを選択→「Cherry Pick」。ダイアログが出るので「OK」をクリック。
（この例ではtopicブランチのコミットをmasterブランチにコピーする）
![cherrypick.png](https://qiita-image-store.s3.amazonaws.com/0/32056/ffe4ddb0-33fa-1665-934e-808f5121ba4a.png)

masterブランチにtopicブランチのコミットがコピーされていることを確認。
![cherrypick2.png](https://qiita-image-store.s3.amazonaws.com/0/32056/40cf4aec-59df-36f7-0805-2f378cc8307a.png)

#ブランチを削除したい（git branch -d）
1.Historyビューを使う場合
まず、削除したいブランチから移動。（この例ではtopicブランチを削除するのでmasterに移動済み）
その後、Historyビューから削除したいブランチを含むコミットを右クリック→「Delete Branch」
![delete.png](https://qiita-image-store.s3.amazonaws.com/0/32056/1b9acca4-e13d-13d1-f4a4-112affceba6e.png)

削除したいブランチにチェックを入れて、「OK」をクリック。
![delete2.png](https://qiita-image-store.s3.amazonaws.com/0/32056/75d678df-b42d-9bb5-e3e7-46a8cfe254b0.png)

2.GitパースペクティブのGit Repositoriesビューを使う場合
「Branches」→「Local」の配下にある削除したいブランチ名を右クリック→「Delete Branch」
![delete3.png](https://qiita-image-store.s3.amazonaws.com/0/32056/9719eb61-23be-630e-37e5-ba91f39a437a.png)


#ブランチ操作の前に変更を一時保存したい（git stash）
GitパースペクティブのGit Repositoriesビューで、リポジトリを選択して右クリック→「Stash Changes...」を選択。
![stash.png](https://qiita-image-store.s3.amazonaws.com/0/32056/845dade7-dd3e-4600-ac67-d7c4d93a2051.png)

ダイアログが出たら、コメントを入れて(任意)、OKをクリック。
※まだステージングしていないファイルがある場合は、「Include untracked files」にチェックをいれる。
![stash2.png](https://qiita-image-store.s3.amazonaws.com/0/32056/fccd5e81-eb19-601a-4e7f-6deb0d0393d4.png)

Git RepositoriesビューのStashed Commitsに追加されていることを確認。
![stash3.png](https://qiita-image-store.s3.amazonaws.com/0/32056/eb31bea7-67dc-ad89-8745-ee687999f909.png)


#ブランチ操作の前に一時保存した変更を元に戻したい（git stash apply）
GitパースペクティブのGit Repositoriesビューで、戻したいstashコミットを選択して右クリック→「Apply Stashed Changes」を選択。
![stash4.png](https://qiita-image-store.s3.amazonaws.com/0/32056/bcf6d0d2-5ff2-06b2-d741-726dca1b7e51.png)

エクスプローラに戻ってファイルが元に戻っていることを確認。