Ich habe einen dialog
Zweig erstellt und wenn ich versuche, ihn zum master
Zweig zusammenzuführen. Es gibt 2 Konflikte. Ich weiß nicht, wie ich es lösen soll CONFLICT (delete/modify)
. Können Sie mir bitte sagen, was ich tun soll?
$ git checkout master
$ git merge dialog
CONFLICT (delete/modify): res/layout/dialog_item.xml deleted in dialog and modified in HEAD. Version HEAD of res/layout/dialog_item.xml left in tree.
Auto-merging src/com/DialogAdapter.java
CONFLICT (content): Merge conflict in src/DialogAdapter.java
Automatic merge failed; fix conflicts and then commit the result.
Ich habe geöffnet src/DialogAdapter.java
, den Konflikt behoben und a git add src/DialogAdapter.java
. Was muss ich noch tun?
git
git-merge
merge-conflict-resolution
BuZZ-dEE
quelle
quelle
Antworten:
Die Konfliktmeldung:
bedeutet, dass dies
res/layout/dialog_item.xml
in dem 'Dialog'-Zweig, den Sie zusammenführen, gelöscht, aber in HEAD (in dem Zweig, in den Sie zusammenführen) geändert wurde.Sie müssen sich also entscheiden, ob
git rm res/layout/dialog_item.xml
" entfernenoder
git add res/layout/dialog_item.xml
"Dann schließen Sie die Zusammenführung mit "
git commit
" ab.Beachten Sie, dass git Sie warnt, dass Sie ein Zusammenführungs-Commit erstellen, in dem (seltenen) Fall, in dem Sie dies nicht möchten. Vermutlich Überreste aus den Tagen, als dieser Fall weniger selten war.
quelle
git rm …
), aber ich bekomme…: needs merge
undrm '…'
was ich schwer zu interpretieren habe. Und wenn ich dann versuche, ein Commit durchzuführen , wird stackoverflow.com/questions/19985906/… erneut angezeigt .git ls-files --stage
und / odergit status --porcelain
und / oder verwendengit diff-files <something>
, um die Liste der geänderten Dateien abzurufen und ein Skript zu erstellen, um sie zu löschen oder Ihre oder ihre Version zu akzeptieren.git status
oder überprüfengit diff --cc
. Es gibt auchgit log --merge
was helfen kann ...Normalerweise
git mergetool
starte ich nur und es wird mich gefragt, ob ich die geänderte Datei behalten oder gelöscht halten möchte. Dies ist meiner Meinung nach der schnellste Weg, da es sich um einen Befehl anstelle mehrerer Befehle pro Datei handelt.Wenn Sie eine Reihe gelöschter Dateien in einem bestimmten Unterverzeichnis haben und möchten, dass alle durch Löschen der Dateien aufgelöst werden, können Sie Folgendes tun:
Mit können Sie
d
auswählen, ob jede Datei gelöscht werden soll. Sie könnenm
die geänderte Datei auch behalten. Entnommen aus der Eingabeaufforderung, die Sie beim Ausführen sehenmergetool
:quelle
Wenn Sie Git Gui unter Windows verwenden,
quelle