###マージ
masterブランチにdevAブランチのマージを行う。
現在masterブランチにはMain.javaファイルが作成されている状態。
devAブランチはmasterブランチから作成したブランチ。
ブランチ作成後、DevAMake.javaファイルを作成した状態。
カレントディレクトリをマージされる側(master)にし、「チーム」→「マージ」
マージ対象のdevAを選択し、「マージ」
マージを行うとmasterブランチはdevAで行った変更が取り込まれDevAMake.javaが追加された状態となる。
###マージの取り消し(Revert)
先ほど行ったマージを取り消してみる。
現在マージはプッシュしていない状態。
ヒストリータブで取り消したいマージを選択し右クリック→「コミットを戻す」。
マージが取り消され、先ほどのマージで取り込まれたDevAMake.javaがいなくなった。
ヒストリーにはRevertコミットが追加される。
これでマージを行う前の状態に戻すことができた。
###プッシュしたマージをRevertで取り消す
先ほどはプッシュしていない状態でマージの取り消しを行ったが、
次はプッシュしたマージの取り消しをしてみる。
まずはマージを行おうとしたが、問題が発生。
先ほどと同じ手順でマージを行うとdevAの変更が取り込まれない。
特にエラーも出ていない…。
調べてみるとこの場合マージをRevertしたコミットをRevertすると良いようだ。
以下に整理してみた。
1.マージした
2.マージをRevertした // こいつをRevertする
上記2のコミットをRevertすると1の状態(devAをマージした状態)となった。
まずは先ほどと同じ手順で(「コミットを戻す」)でRevertしてみる。
マージでの変更は取り消された。
この状態でpushすると成功した。
###マージをしなかったことにしたい(reset)
Revertは打ち消しのコミットであり、ヒストリーに履歴が残る。
resetを使うと、マージの変更点がなくなり、かつヒストリーからも
マージを行ったという履歴が消える。
id:b8733b1のマージコミットにより、masterブランチにはDevAMake.javaが追加されている。
このマージの変更をresetを使ったなかったことにする。
現在戻りたいコミットはid:39cd904
ヒストリータブで行を選択した状態で右クリック→「リセット」→「ハード」
マージを行ったことで追加されたファイルがなくなり、ヒストリーからもマージコミットを行った履歴が消えた。