web-dev-qa-db-ja.com

Eclipse EGit Checkoutとファイルの競合:-EGitは続行したくない

Eclipse EGitを開始しました。一部のシナリオでは、実際には包括的ではありません。

ローカルファイルがあります。 pom.xmlが変更されました。 gitサーバーでは、このファイルが変更されました。私はpullをします、EG

ファイルとのチェックアウトの競合:

つまり、プルを停止します(fetchは実行されますが、mergeは実行されません)。しかし、次は悪い経験です。

ワークスペースを同期し、変更を脇に置き、FETCH_HEADと同じにします。しかし、EGitは継続したくありません。ファイルをHEADリビジョンに置き換えます。しかし、EGitは続行したくありません。

競合解決後のEGitでの標準的なユーザー操作は何ですか?

更新:

added to index、次にmarked as Merged-> pullはまだ通過できません。
Mergeを選択すると、ダイアログが表示されます

enter image description here

変更されたファイルのリストにないため、ファイルをコミットできません。

43
Paul Verest

状況:

  • ローカルにコミットされていない変更があります
  • マスターリポジトリからプルします
  • 「Checkout conflicts with files:xy」というエラーが表示されます

解決策:

  • (少なくとも)ファイルxyをステージングしてコミットする
  • もう一度引く
  • 自動マージが可能な場合は、すべて問題ありません。
  • そうでない場合、プルはファイルをマージし、マージ競合マーカーを挿入します(<<<<<<、>>>>)
    • 競合するファイルを手動で編集する
  • コミットおよびプッシュ
51
Jojo.Lechelt

これは私の問題を解決した方法です:

  1. ローカルでコミットされていない変更があるフォルダーを右クリックします
  2. [チーム]> [詳細]> [変更なしと仮定]をクリックします。
  3. Pullマスターから。

UPDATE:

Hugo Zuleta が正しく指摘しているように、これを適用する際には注意が必要です。彼は、ブランチは最新であると言うかもしれませんが、変更は表示されないため、ブランチからの非同期が発生すると言います。

28
Burak Karakuş
  1. 競合エラーダイアログを閉じた後。プロジェクトエクスプローラから、プロジェクトのヘッドを右クリック->チーム-> Stashes-> Stash Changes
  2. スタッシュの名前を入力します。例えば。 「対立」
  3. もう一度引っ張ってみてください。今回はエラーがないことを願っています。
  4. Gitリポジトリビューから、リポジトリを展開-> Stashed Commits
  5. ステップ2で作成したスタッシュを右クリック->スタッシュされた変更を適用
  6. これにより、自動的にマージできない場合、マージツールが表示されます。
  7. ファイルのマージの競合を手動で解決します。
  8. ファイルエディターを右クリック->チーム->インデックスに追加
  9. ファイルをコミットする準備ができていない場合、または単にインデックスに入れたくない場合は、ファイルエディタ->チーム->インデックスから削除を右クリックします。
  10. クリーンアップ:Gitリポジトリビューで、手順2で作成したスタッシュを右クリックし、[スタッシュコミットの削除]をクリックします。

ローカル作業ディレクトリファイルをマージする必要があります

21
Brock W.

「.settings/language.settings.xml」またはそのようなファイルにエラーが発生した場合、gitする必要はありません。

  1. チーム->コミット->ステージングされたファイルリスト、不要なファイルが存在するかどうかを確認、->それぞれを右クリック->インデックスから削除。
  2. UnStaged filelistから、不要なファイルが存在するかどうかを確認します->それぞれを右クリック->無視します。

ステージングされたファイルのリストが空で、ステージングされていないファイルのリストがすべてのファイルに無視としてマークされるようになりました。引っ張ることができます。それ以外の場合は、他の回答に従ってください。

1
Gururaja Hegde

適切なソリューションは、@ Jojo.Lecheltによって提供されるものです。

ただし、何らかの理由でコミットしたくなくて変更をプルしたい場合は、変更を別の場所に保存し、競合するファイルをHEADリビジョンで置き換えてプルすることができます。

後で変更を再度貼り付けて、HEADと比較し、他の人の変更をファイルに組み込むことができます。

0
Zafar Nasim

私はこれを行うための最良の方法は次のようだと思います:

  1. すべての変更を別のブランチに保存します。
  2. 次に、ローカルマスターでハードリセットを実行します。
  3. 次に、ローカルに作成されたブランチから変更をマージして戻します
  4. 次に、変更をコミットしてプッシュします。

それが起こるときはいつでも、私がどうやって解決するか。

0
Pritam Banerjee

プロジェクトを右クリックし、[置換]-> [ヘッドリビジョン]を選択します。現在のブランチでプル変更を選択するか、上流から変更をプルします。

0

Eclipseから見苦しいCheckoutConflictExceptionを取得すると、Eclipse-Merge Toolボタンが無効になります。

マージを有効にするには、インデックスにファイルを追加する必要があります

したがって、変更をマージしてコミットするには、最初にファイルをインデックスに追加する必要があります"インデックスに追加"および"コミット"それらを"プッシュ"。その後、Eclipseで1つの保留中のプルと1つの保留中のプッシュリクエストが表示されます。 1つの上矢印と1つの下矢印でそれを確認できます。

すべての競合ファイルがコミット内にある場合は、"pull"を再度実行できます。次に、次のようなものが表示されます。

\ <<<<<<HEADサーバーバージョン\ =======ローカルバージョン>>>>>>> .... gitのブランチ「マスター」

次に、Merge-Toolで変更します。Merge-Toolは有効になっているか、ファイル内で直接手動でマージを実行します。最後の手順では、変更したファイルを再度インデックスに追加し、"Commit and Push"それらを追加する必要があります。

確認完了!

0
Mathias Rieder