2017-07-24 2 views
0

Ich stehe vor einem Rebase-Problem, da nach dem Hinzufügen von Dateien, für die ich Konflikte gelöst habe, der Fehler "Keine Änderungen - hast du vergessen, 'git add'?" entsteht, sobald ich versuche, Rebase fortzusetzen. Hat jemand bitte eine Ahnung?Unentdeckte Änderungen während der Git-Rebase

Danke.

Antwort

1

Dies geschieht, wenn Sie einen Konflikt lösen, indem Sie "ihre" Version der Datei wählen (oder wenn Sie die Datei manuell bearbeiten und die Änderungen anwenden und am Ende ist die Datei identisch mit "ihrer" Version).

Wenn Sie alle Konflikte gelöst haben, gibt es keine Änderungen am Arbeitsbaum, git commit hat nichts zu tun. git rebase --continue möchte das Äquivalent von git commit ausführen, um das Commit anzuwenden, an dem es arbeitet, aber git commit, standardmäßig wird kein leeres Commit erstellt.

In diesem Fall sollten Sie git rebase --skip statt git rebase --continue ausführen.

Die Rebase überspringt den Commit, an dem sie arbeitet, weil sie keine Lösung für die Auflösung von Konflikten enthält.

1

Wenn Git Ihnen das sagt, dann haben Sie keine tatsächlichen Änderungen zu begehen. Dies kann in einer Rebase-Situation passieren, wenn Ihre Konfliktlösung endete und zu keinen Änderungen für das Commit führt, das Sie gerade neu erstellen. Ein häufiger Grund dafür könnte sein, dass die Änderungen bereits im Basis-Commit enthalten waren, was das rebasierte Commit überflüssig macht.

Git warnt Sie dann, dass es nichts zu begehen hat/Rebase. In diesem Fall können Sie entweder ein leeres Commit (git commit --allow-empty) festschreiben oder Sie überspringen dieses aktuelle Commit (da es nichts enthält). Tun Sie einfach git rebase --skip dann.

0

Verstanden; @ pokes "git commit --allow-empty" brachte mich in die richtige Richtung: Ich benutzte "commit --amend", bevor ich zum Remote-Master drängte, um es für den Rest des Teams "transparent" zu machen, während ich ein brandneues Commit benötigte um Konflikte zu vermeiden.

Verwandte Themen