Wie kann ich eine neue commit
und eine neue Nachricht erstellen, wenn keine Änderungen an Dateien vorgenommen werden?
Ist dies nicht möglich, da der Commit-Code (SHA?) Der gleiche ist?
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.
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 erstellencommit --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 ich Sie richtig verstanden habe, möchten Sie ein leeres Commit durchführen. In diesem Fall benötigen Sie:
quelle
Leeres Commit mit einer Nachricht
Leeres Commit mit einer leeren Nachricht
quelle
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.
quelle
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.quelle