Nach dem Zusammenführen von Verzweigten habe ich eine erhalten conflict (rename/rename)
auf Haufen von Dateien, mit file~HEAD
und file~my_test_branch
erstellt. Wie kann man diese lösen?
Vielen Dank
Nach dem Zusammenführen von Verzweigten habe ich eine erhalten conflict (rename/rename)
auf Haufen von Dateien, mit file~HEAD
und file~my_test_branch
erstellt. Wie kann man diese lösen?
Vielen Dank
Bei folgendem Testaufbau:
git init resolving-rename-conflicts
cd resolving-rename-conflicts
echo "this file we will rename" > will-be-renamed.txt
git add -A
git commit -m "initial commit"
git checkout -b branch1
git rename will-be-renamed.txt new-name-1.txt
git commit -a -m "renamed a file on branch1"
git checkout -b branch2 master
git rename will-be-renamed.txt new-name-2.txt
git commit -a -m "renamed a file on branch2"
git checkout master
Dann verschmelzen branch1 und branch2
git merge --no-ff branch1
git merge --no-ff branch2
Erträge:
CONFLICT (rename/rename): Rename "will-be-renamed.txt"->"new-name-1.txt" in branch "HEAD" rename "will-be-renamed.txt"->"new-name-2.txt" in "branch2"
Automatic merge failed; fix conflicts and then commit the result.
git status
On branch master
You have unmerged paths.
(fix conflicts and run "git commit")
Unmerged paths:
(use "git add/rm <file>..." as appropriate to mark resolution)
added by us: new-name-1.txt
added by them: new-name-2.txt
both deleted: will-be-renamed.txt
no changes added to commit (use "git add" and/or "git commit -a")
Wenn Sie eine Datei behalten möchten, sagen wir new-name-2.txt
:
git add new-name-2.txt
git rm new-name-1.txt will-be-renamed.txt
git commit
Natürlich müssen Sie bei der Auswahl der einen oder anderen Datei möglicherweise andere Änderungen an Dateien vornehmen, die diese Datei namentlich referenzieren. Wenn es andere Änderungen an der Datei gibt, die nicht umbenannt sind, vor oder nach der Umbenennung in den Zweigen, müssen Sie diese manuell unterscheiden und zusammenführen, um sie in der Datei beizubehalten, die Sie beibehalten.
Wenn Sie stattdessen beide Dateien behalten möchten:
git add new-name-1.txt new-name-2.txt
git rm will-be-renamed.txt
git commit
Wählen Sie aus, welche dieser Dateien in den angegebenen Dateien verbleiben sollen und was mit der anderen geschehen soll? Oder fügen Sie ihre Inhalte manuell zusammen, fügen Sie dann das Ergebnis hinzu und führen Sie die Zusammenführung durch.
– Millielch
6. Februar 2013 um 15:32 Uhr
stackoverflow.com/questions/4679901/git-divergent-renaming könnte hier helfen.
– VonC
6. Februar 2013 um 16:13 Uhr
Git 2.18 wird helfen.
– VonC
14. April 2018 um 0:39 Uhr