2016-10-17 9 views
0

時々、私はgit mergeのときにマージ競合が発生します。私はエラーを取得します:Git:マージの競合を修正した後、ブランチに戻るにはどうすればいいですか?

Automatic merge failed; fix conflicts and then commit the result.

これは問題ありません。私はその競合を解決します。

この問題が発生すると、私は作業中のブランチから追い出されるようです。 git branchを実行すると、developブランチのように表示されます。

私はちょうど私に取り組んでいたブランチをチェックアウトしようとした場合、私はコミットまたは隠ししようとすると、私はエラーを取得エラー

Please, commit your changes or stash them before you can switch branches.

を得る:

You are not on the correct branch.

唯一の方法私はこれを打ち破ることができますgit reset --hard HEADを使用することですもちろん私はすべての私の仕事を緩めることを意味します。

なぜこれが起こっているのか、私は何ができるのですか?

+0

マージ競合を修正した後は、 'git status'のように、' git commit'を使ってマージを完了する必要があります。その後、作業中のブランチに自動的に戻されます。 – 1615903

答えて

0
  1. git statusあなたの現在のステータスを確認してください。

  2. git diff競合を正しく修正することを確認してください。

  3. git addあなたのファイル。

  4. git commit

    あなたの他の仕事を...

0

The only way I can break out of this is to use git reset --hard HEAD which of course means I loose all my work.

あなたは間違ってそれをやっている:あなたが現在進行中のマージを終了したい場合はgit merge --abortgit reset --mergeを使用しています。

また、kagvで説明されているように、現在のマージを終了します。 3番目のオプションはありません... gitに矛盾があり、手動で解決する必要があります。だから、それを修正するか、または安定してリセットしてください。

注:gitがコンフリクト(マージ、リベース、またはチェリーピックアクション中)を検出すると、機能が制限された特別なモード(別のリビジョンをチェックアウトしないなど)になります。

関連する問題