Eclipse でGitが利用できる EGitは便利。だけどGitそのものを理解していないと思わぬところでつまづく。
例えば、コンフリクト。どこかのバージョンをコミットしてから、別のバージョンをチェックアウトしようとすると、少しでも変更されていたら怒られる。当たり前だけど。
↓はCheckout Confilictsの警告ダイアログ
対処法としては状況に応じて以下を実行すれば良い。
1.現在の変更をしたい→ ブランチ切ってからCommit
2.現在の変更を他のコミットと統合したい→Merge
3.現在の変更を破棄したい→Replace
1.の場合は、Team -> Switch To -> New Branchからブランチを作成して、Team- > Commitすれば良い
2.については下記が詳しい。
http://d.hatena.ne.jp/Hirohiro/20111122/1321964799
3.変更を破棄する。
マージなんて面倒なことせずに、ローカルで編集した内容を破棄して単純に今コミットしているバージョンに戻したいんだよ>< って時の手順をはこれ。
手順はTeam -> Replace With -> Commitから、置き換えたいコミット(ここでは現在チェックアウトされているコミット)を選択する
こういう作業をGitではRevertというらしい。
似たようなものとしてResetがあるが、これを実行するとひどい目を見る。
Resetは、「既存のコミットを削除することができる」というわかってる人には便利な機能らしいのだが、Gitをよくわかってない人にとっては絶対触れてはいけない恐ろしいコマンドなのだ。
語感だけで「チェックアウトした状態にリセットしてくれるんじゃね?」とか思ってこれを実行すると痛い目を見る。しかもTeam→Resetという比較的浅い場所にあるので、やってしまう危険性は大きい。
お気をつけて。