6

私と友人は、メイン リポジトリ (上流) からフォークします。昨夜、ローカル マシンにこのリポジトリの同じバージョンがありました。その後、私は新しい機能を追加し、友人も別の新機能を追加しました。私の友人はリクエストをメイン リポジトリにプルし、私はこのプル リクエストをアップストリーム リポジトリと競合することなくマージしました。そして、上流から取得してマスター ブランチとマージすると、競合します。この状況で競合を解決するにはどうすればよいですか? (競合を解決した後、アップストリーム リポジトリには 2 つの新しい機能が必要です)

4

3 に答える 3

10

Eclipse / Egit自体から直接マージ競合を解決することもできることに注意して
ください。「Egit:マージ競合の解決」を参照してください。

左側のテキストを手動で編集するか、[現在の変更を右から左にコピー]ボタンを使用して、競合する変更を右から左にコピーできます。

次のステップは、ファイルのコンテキストメニューから、[チーム]->[インデックスに追加]を選択することです。コミットするより。

EGitで競合解決をマージする

于 2012-08-28T11:29:16.483 に答える
4

によって競合しているとマークされたファイルgit statusを調べて、競合マーカーを見つけます (ファイル内で検索でき====ます)。それらの間の変更を調整し、コードの組み合わせによって予期しない他の何かが壊れていないかを調べ、テストを実行してから、通常どおり and を使用git addgit commitて、友人の新機能をあなたの新機能とマージするコミットを行います。

Upstream: original                 with friend's feature            with both
               \  \               /                \               /
                \  -- Friend's --/                  \             /
                 \                                   \           /
                  ---- Yours ------------------------- your merge
于 2012-04-29T06:49:57.250 に答える
1

コンソールに入力git difftool path/filenameして、ツールを使用して競合を解決するか、競合解決が組み込まれている Git ソフトウェアを使用できます。私は SmartGit (SmartSVN のメーカーによる) と TortoiseGit (TortoiseSVN に非常に似ています) が本当に好きです。

于 2012-04-29T20:07:13.377 に答える