557 Stimmen

Leere Commits zum Remote-Repository pushen

Ich habe einen Commit an das Remote-Repository geschoben, aber jetzt habe ich festgestellt, dass die Commit-Nachricht nicht korrekt ist. Ich möchte die Commit-Nachricht ändern, aber soweit ich weiß, ist das nicht möglich. Deshalb habe ich mich entschieden, einen leeren Commit mit der korrekten Nachricht zu erstellen:

git commit --allow-empty

Gibt es irgendwelche Nachteile/Folgen beim Pushen von leeren Commits? Könnte ich in Zukunft irgendwelche Probleme aufgrund dieses leeren Commits haben??

698voto

sarjit07 Punkte 7091

Eine Verwendung eines leeren Commits wäre, einen Build in einer Umgebung zu erzwingen, in der Builds ausgelöst werden, wann immer neue Commits gepusht werden.

git commit --allow-empty -m "Build auslösen"

110voto

Gabriele Petronella Punkte 104760

Sie werden keine schrecklichen Konsequenzen haben, nur die Historie wird etwas verwirrend aussehen.

Sie könnten die Commit-Nachricht ändern, indem Sie dies tun

git commit --amend
git push --force-with-lease # (im Gegensatz zu --force überschreibt es nicht die Arbeit anderer)

ABER dies wird die Remote-Historie mit Ihrer überschreiben, was bedeutet, dass wenn jemand in der Zwischenzeit dieses Repository gezogen hat, diese Person sehr sauer auf Sie sein wird...

Machen Sie es nur, wenn Sie die einzige Person sind, die auf das Repository zugreift.

46voto

xor Punkte 4214

Das Drücken von Commits, ob leer oder nicht, führt letztendlich dazu, dass Git Hooks ausgelöst werden. Dies kann entweder nichts tun oder weltbewegende Konsequenzen haben.

22voto

yamafontes Punkte 5562

Gibt es irgendwelche Nachteile/Konsequenzen beim Pushen von leeren Commits?

Abgesehen von der extremen Verwirrung, die jemand bekommen könnte, wenn auf dem Master eine Menge Commits ohne Inhalte erscheinen, nicht wirklich.

Sie können den Commit, den Sie in das Remote-Repository gepusht haben, ändern, aber die sha1 des Commits (praktisch seine Identifikationsnummer) ändert sich dauerhaft, was den Quellbaum verändert -- Sie müssten dann ein git push -f zurück zum Remote-Repository durchführen.

17voto

153957 Punkte 384

Solange du den anderen Commit klar referenzierst, sollte es in Ordnung sein. Etwas in der Art von:

Fehlerkorrektur der Commit-Nachricht für [commit sha1]

[neue Commit-Nachricht]

Wie andere bereits angemerkt haben, ist es oft vorzuziehen, einen korrigierten Commit zu erzwingen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X