Antworten:
Es gibt selten einen guten Grund dafür, aber der Parameter gilt --allow-empty
für leere Commits (keine Dateien geändert), im Gegensatz zu --allow-empty-message
leeren Commit-Nachrichten. Sie können auch mehr lesen, indem git help commit
Sie die Online-Dokumentation eingeben oder besuchen .
Während das Baumobjekt (das einen eigenen Hash hat) identisch ist, hat das Commit tatsächlich einen anderen Hash, da es vermutlich einen anderen Zeitstempel und eine andere Nachricht hat und definitiv ein anderes übergeordnetes Commit hat. Alle drei Faktoren sind in git
den Objekt-Hash-Algorithmus integriert.
Es gibt einige Gründe, warum Sie möglicherweise ein leeres Commit wünschen (einschließlich einiger Kommentare):
git
Befehle testen , ohne willkürliche Änderungen zu generieren (über Vaelus ).gitolite
(über Tatsh ) neu.Andere Strategien zum Hinzufügen von Metadaten zu einem Festschreibungsbaum umfassen:
git notes
eine veränderbare Notiz zusätzlich zu einem bestehenden unveränderlichen Commit zuzuordnen.commit --amend
wenn die Fernbedienung kein Force-Push zulässt. Auf diese Weise können Entwickler eine wichtige Nachricht sehen, die zum vorherigen Commit gehört.
Wenn Sie ein System wie gitversion verwenden, ist es sehr sinnvoll, diese Art von Commit durchzuführen . Sie könnten ein Commit haben, das speziell dafür gedacht ist, die Hauptversion mit einem + semver: major-Kommentar zu stoßen.
Als sinnvollere Alternative könnten Sie möglicherweise ein mit Anmerkungen versehenes Tag erstellen (ein benanntes Commit mit einer Nachricht). Siehe die git tag -a
Option.
dev
Verzweigungsformularmaster
und dann einefeat
Verzweigung unmittelbar von erstellen, scheint die Verzweigung vondev
derfeat
Verzweigung zu stammenmaster
, da für diedev
Verzweigung, von der diefeat
Verzweigung stammt, kein Unterscheidungs-Commit vorhanden ist . Ein leeres Commit, wenn Sie dendev
Zweig zum ersten Mal erstellen, hilft dabei, dendev
Zweig als einen eigenen, unbegrenzt dauerhaften Zweig unabhängig davon zu etablierenmaster
. Im Allgemeinen ist es hilfreich, wenn Sie Zweige als Ebenen verwenden und zwei Ebenen aus einem einzigen Commit erstellen