Ich verstehe nicht, warum “beide gelöscht” ein Status für nicht zusammengeführte Pfade ist.
Wenn:
- OldStandard ist die Basis
- NewStandard ist das letzte Commit auf dem Trunk
- OldCustom ist der Zweig (Fork von OldStandard), den wir versuchen, wieder in Master zusammenzuführen
Warum gibt es einen Konflikt mit einigen Dateien, die als „beide gelöscht“ markiert sind?
Ich verstehe den Konflikt für “beide hinzugefügt”, wenn eine Datei in NewStandard hinzugefügt wird und eine andere Version der Datei in OldCustom hinzugefügt wird.
Aber was ist das Problem beim Löschen, wenn die Datei in NewStandard gelöscht wurde und auch in OldCustom gelöscht wurde? Das ist ein äquivalenter Zustand, nein?
Wie in dieser Antwort angegeben (als Duplikat vorgeschlagen):
Sie können ein “beide gelöscht” sehen, wenn branchA
hat ein git mv oldfile newstandard
begehen, und branchB
hat ein git mv oldfile newcustom
verpflichten.
In diesem Fall beim Versuch, zusammenzuführen customBranch
hinein standardBranch
, git
meldet einen Konflikt bei drei Dateien:
both deleted: oldfile
added by them: newcustom
added by us: newstandard
Wie bei jedem Konflikt liegt die endgültige Entscheidung in Ihren Händen:
git
nur die Tatsache hervorheben, dass kann sein Es könnte ein Problem darin liegen, dass newcustom
und newstandard
in Ihrer endgültigen Codeversion zusammenleben, und kann sein Dies könnte mit der Tatsache zusammenhängen, dass beide erstellt wurden, indem sie eine Kopie von waren oldfile
.
Sie können das manuell beheben:
- wenn entfernt
oldfile
ist das erwartete Ergebnis: git reset -- oldfile
,
- wenn halten
newstandard
das erwartete Ergebnis ist, entfernen Sie das andere: git reset newcustom && git rm newcustom
,
- wenn einige Teile von
newstandard
und newcustom
zusammengeführt werden sollen: Bearbeiten Sie sie von Hand oder verwenden Sie ein 3-Wege-Merge-Tool: meld newstandard newstandard newcustom
- etc …
Git muss der Löschung einen Commit-Hash zuordnen. Welcher Commit soll hier die Verantwortung für die Löschung übernehmen?
– Tom
3. Juli 2017 um 9:49 Uhr
Mögliches Duplikat von Git-Zusammenführungskonflikt reproduzieren: DD
– LeGEC
3. Juli 2017 um 12:00 Uhr