web-dev-qa-db-ja.com

チェックアウトがファイルと競合しています。どうすれば続行できますか?

チームプロジェクトを保持しているリモートリポジトリからいくつかの変更をプルしました。

これは私がプルで受け取ったメッセージです:

Checkout Conflict

どうやら、私のパートナーの1人が私と同じファイルに変更を加えました。

ここからどのように進めますか?メッセージは非常にあいまいです。エラーはありましたか?行ったことを元に戻す必要がありますか?彼はする必要がありますか?

6
CodyBugstein

私は今日この問題に直面しました、そして以下の解決策は私のために働きます。

  1. Gitstashを実行します。これにより、ローカルで競合するすべての変更が統合されます。
  2. 今すぐgitpullを実行してください
11
Pushkin

パートナーの変更をコードに組み込み、手動でマージされたファイルをコミットすることにより、 競合を手動で解決する にする必要があります。

または、変更がそれほど複雑でない場合は、そのファイルへの変更を元に戻し(破棄)、コードを更新してパートナーの変更を取得してから、作業をやり直すことができます。

this を参照してください

1

作業コピーにあるファイルにコミットされていない変更がありますか?または、作業コピーはクリーンですか? EGitのドキュメントは、後者のシナリオをガイドします。

私の経験では、@ lmrayによって投稿されたエラーダイアログは、ローカルの作業コピーにコミットされていない変更があった場合にEGitが表示するものです。 EGitはリモートからの情報をマージしたいと思っていますが、ダーティな作業コピーは変更されないと言われています。続行するには、最初に変更をローカルでコミットしてフォールバックポイントを指定してから、マージを再度要求する必要があります。マージすると、競合することなく、マージされたファイルが生成されます。

@Bに感謝します。私をまっすぐにしようとしたダルトン-私の汚い作業コピーファイルにはコミットされていない変更があり、ローカルのgitウィザードが物事を説明しました。

余談:これは、あなた(私のように)がSVNでの作業に慣れている場合の精神的な調整であり、リモートの変更をダーティなローカル作業ファイルにうまくプルします。それが良いと言っているのではなく、gitの動作が異なるだけです。 SVNでトレーニングした直感をGitの適切な期待に変換するのにまだ苦労しています。

1
chrisinmtown