コンフリクトが出て『とりあえずリモートのきれいな状態に戻してやり直したい』時に使えるコマンドとEclipseでの操作
gitで複数人が作業していると、必ず起こるのが「コンフリクト」。
全然関係ないソースをいじっているならOKなんだけど、そんなことばかりではないですよね。
gitをまだあまり理解していないときに、下手にいじって他の人に迷惑かけたくないし。。
「とりあえず、リモートのリポジトリのきれいな状態に戻して、そこに自分の変更を加えようかな~」と思うこともあるハズ。
今回は、そんなときに使えるコマンドと、それをEclipse上で行なう方法を解説します。
>>もし、特定のファイルだけをリモートの状態に上書きして戻したいということであれば、この記事を参考にしてください。
一回リセットしたいときのコマンド「git reset」
その名も「git reset」。
ローカルの自分のリポジトリの状態を、ある時点に「リセット」することが出来ます。
リセットの種類にも、「ソフト」「混合」「ハード」がありますが、きれーいに戻したい場合は、HEADやインデックスだけでなく、作業ディレクトリの状態も戻してくれる「ハード」が良いです。
コマンドの使い方は、
git reset --hard (戻りたいコミットのコミットID)
です。
git reset --hard 499f2159de
みたいに使うことで、コミットID「499f2159de」の状態に戻ることができます。
リモートの状態で強制的にローカルを上書きする
コミットのハッシュが分かっていれば上記の対処でOKですが、リモートの特定ブランチの最新版に合わせたいんだよ!という場合には、以下のコマンドが使えます。
コマンドの使い方は、
//リモートの状態をローカルにフェッチ git fetch origin //ローカルに持ってきた最新の追跡ブランチの状態でローカルを上書き git reset --hard origin/master
です。
eclipseでやる場合
eclipseでやる場合は、下記のように、プロジェクトを左クリックして、「チーム」→「リセット」を選びます。
すると、以下のようなダイアログが開くので、戻したい先のコミットを選択します。
(おそらく、リモート追跡リポジトリのコミットであることが多いかもしれません。)
ダイアログの下には、リセットの種類を選択するラジオボタンがありますので、適切なものを選びます。
「ハード」を選ぶと、上記に記載したように、作業ディレクトリまできれいに更新してくれます。