「両方削除」がマージされていないパスのステータスである理由がわかりません。
次の場合:
「両方削除」とマークされたファイルとの競合があるのはなぜですか?
NewStandardに1つのファイルが追加され、OldCustomに別のバージョンのファイルが追加されると、「両方追加」の競合を理解しています。
しかし、削除の場合、ファイルがNewStandardで削除され、OldCustomでも削除された場合、何が問題になりますか?同等の状態ですよね?
この答え (重複として推奨)で述べたように:
branchA
にgit mv oldfile newstandard
コミットがあり、branchB
にgit mv oldfile newcustom
コミットがあると、「両方が削除された」ことがわかります。
その場合、customBranch
をstandardBranch
にマージしようとすると、git
は3つのファイルの競合を報告します。
both deleted: oldfile
added by them: newcustom
added by us: newstandard
あらゆる紛争と同様に、最終的な選択はあなたの手にあります:
git
は、たぶんnewcustom
とnewstandard
が一緒に住んでいるという事実に問題がある可能性があるという事実を強調するだけです最終的なコードバージョン、および多分これは、両方がoldfile
のコピーとして作成されたという事実にリンクしている可能性があります。
あなたはそれを手動で修正します:
oldfile
の削除が期待される結果である場合:git reset oldfile && git rm oldfile
、newstandard
を維持することが期待される結果である場合は、他のgit reset newcustom && git rm newcustom
を削除します。newstandard
とnewcustom
の一部をマージする必要がある場合:手作業で編集するか、3者間マージツールを使用します:meld newstandard newstandard newcustom