Ich habe einmal gelesen, dass Git-Commit-Nachrichten im Imperativ Präsens sein sollten, z. B. "Tests für x hinzufügen". Ich verwende immer die Vergangenheitsform, z. B. "Tests für x hinzugefügt", was sich für mich viel natürlicher anfühlt.
Hier ist ein kürzlich von John Resig vorgenommenes Commit, das die beiden in einer Nachricht zeigt:
Optimieren Sie einige weitere jQuery-Set-Ergebnisse in den Manipulationstests. Außerdem wurde die Reihenfolge der erwarteten Testergebnisse festgelegt.
Ist das wichtig? Welches soll ich verwenden?
git
git-commit
conventions
commit-message
Skilldrick
quelle
quelle
Antworten:
Die Präferenz für Commit-Nachrichten im Präsens-Imperativ-Stil kommt von Git selbst. Aus Documentation / SubmissionPatches im Git-Repo:
Sie werden also viele Git-Commit-Nachrichten sehen, die in diesem Stil geschrieben wurden. Wenn Sie in einem Team oder an Open Source-Software arbeiten, ist es hilfreich, wenn sich alle aus Gründen der Konsistenz an diesen Stil halten. Selbst wenn Sie an einem privaten Projekt arbeiten und der einzige sind, der jemals Ihre Git-Geschichte sehen wird, ist es hilfreich, die imperative Stimmung zu verwenden, da sie gute Gewohnheiten festlegt, die geschätzt werden, wenn Sie mit anderen zusammenarbeiten.
quelle
rebase
odercherry-pick
in diesem Fall die Festschreibung außerhalb des ursprünglichen Kontexts verwendet werden kann. Infolgedessen sollte die Festschreibungsnachricht eigenständig geschrieben werden, ohne dass der Leser die umgebenden Festschreibungsnachrichten anzeigen muss. Wenn Sie Patches für die Kirschernte auswählen, ist es sinnvoller, "QuickSort-Algorithmus korrigieren" oder "Sortieren: Leistung verbessern" anstelle von "Behobener Fehler Nr. 124" oder "Geänderte Sortierung zur Verbesserung der Leistung" anzuwenden.Ihr Projekt sollte fast immer die Vergangenheitsform verwenden . In jedem Fall sollte das Projekt aus Gründen der Konsistenz und Klarheit immer dieselbe Zeitform verwenden.
Ich verstehe einige der anderen Argumente, die argumentieren, die Gegenwart zu verwenden, aber sie treffen normalerweise nicht zu. Die folgenden Aufzählungspunkte sind häufige Argumente für das Schreiben in der Gegenwart und meine Antwort.
Dies ist der richtigste Grund, warum man die Gegenwart verwenden möchte, aber nur mit dem richtigen Projektstil. Bei dieser Denkweise werden alle Commits als optionale Verbesserungen oder Funktionen betrachtet, und Sie können frei entscheiden, welche Commits in Ihrem speziellen Repository beibehalten und welche abgelehnt werden sollen.
Dieses Argument funktioniert, wenn Sie es mit einem wirklich verteilten Projekt zu tun haben. Wenn Sie mit einem verteilten Projekt arbeiten, arbeiten Sie wahrscheinlich an einem Open Source-Projekt. Und es ist wahrscheinlich ein sehr großes Projekt, wenn es wirklich verteilt ist. In der Tat ist es wahrscheinlich entweder der Linux-Kernel oder Git. Da Linux wahrscheinlich dazu geführt hat, dass sich Git verbreitet und immer beliebter wird, ist es leicht zu verstehen, warum die Leute seinen Stil als Autorität betrachten. Ja, der Stil macht bei diesen beiden Projekten Sinn. Im Allgemeinen funktioniert es auch mit großen, verteilten Open Source- Projekten.
Allerdings funktionieren die meisten Projekte in der Quellcodeverwaltung nicht so. Dies ist normalerweise für die meisten Repositorys falsch. Es ist eine moderne Art, über Commits nachzudenken: Subversion- (SVN) und CVS-Repositorys könnten diese Art von Repository-Check-Ins kaum unterstützen. Normalerweise handhabte ein Integrationszweig das Filtern fehlerhafter Check-Ins, aber diese wurden im Allgemeinen nicht als "optional" oder "schön zu haben" angesehen.
In den meisten Szenarien schreiben Sie beim Festschreiben eines Quell-Repositorys einen Journaleintrag, in dem beschrieben wird, was sich mit diesem Update geändert hat, damit andere in Zukunft leichter verstehen können, warum eine Änderung vorgenommen wurde. Dies ist im Allgemeinen keine optionale Änderung. Andere Personen im Projekt müssen sie entweder zusammenführen oder neu erstellen. Sie schreiben keinen Tagebucheintrag wie "Liebes Tagebuch, heute treffe ich einen Jungen und er sagt Hallo zu mir.", Sondern Sie schreiben "Ich habe einen Jungen getroffen und er hat Hallo zu mir gesagt ."
Bei solchen nicht verteilten Projekten ist 99,99% der Zeit, in der eine Person eine Commit-Nachricht liest, für das Lesen des Verlaufs bestimmt - der Verlauf wird in der Vergangenheitsform gelesen. In 0,01% der Fälle wird entschieden, ob sie dieses Commit anwenden oder in ihre Zweigstelle / ihr Repository integrieren sollen.
Nein, ich garantiere Ihnen, dass die meisten Projekte, die jemals in einem Versionskontrollsystem angemeldet waren, ihren Verlauf in der Vergangenheitsform hatten (ich habe keine Referenzen, aber es ist wahrscheinlich richtig, wenn man bedenkt, dass das Argument der Gegenwartsform seit Git neu ist). "Revisions" -Nachrichten oder Commit-Nachrichten in der Gegenwart haben erst in wirklich verteilten Projekten Sinn gemacht - siehe den ersten Punkt oben.
Siehe den ersten Punkt. 99,99% der Zeit, in der eine Person eine Commit-Nachricht liest, dient zum Lesen des Verlaufs - der Verlauf wird in der Vergangenheitsform gelesen. In 0,01% der Fälle wird entschieden, ob sie dieses Commit anwenden oder in ihre Zweigstelle / ihr Repository integrieren sollen. 99,99% schlagen 0,01%.
Ich habe noch nie ein gutes Argument gesehen, das besagt, dass man falsche Zeitform / Grammatik verwendet, weil es kürzer ist. Sie werden wahrscheinlich nur durchschnittlich 3 Zeichen für eine Standardnachricht mit 50 Zeichen speichern. Davon abgesehen wird die Gegenwart im Durchschnitt wahrscheinlich einige Zeichen kürzer sein.
Tickets werden entweder als etwas geschrieben , das derzeit geschieht (zB die App zeigt das falsche Verhalten , wenn ich auf diese Schaltfläche klicken), oder etwas , dass der Bedarf in der Zukunft durchgeführt werden (zB der Text muss eine Überprüfung durch die Redaktion).
Geschichte (dh Commit - Nachrichten) als etwas geschrieben , das in der Vergangenheit getan wurde (zB das Problem wurde festgelegt).
quelle
Ich habe eine ausführlichere Beschreibung zu 365git geschrieben .
quelle
Halten Sie sich an den Präsens-Imperativ, weil
quelle
Für wen schreibst du die Nachricht? Und liest dieser Leser normalerweise die Nachricht vor oder nach dem Besitz des Commits selbst?
Ich denke, hier wurden aus beiden Perspektiven gute Antworten gegeben. Ich würde vielleicht nicht behaupten, dass es für jedes Projekt die beste Antwort gibt. Die getrennte Abstimmung könnte dies nahe legen.
dh zusammenfassen:
Ist die Nachricht vorwiegend für andere Personen gedacht, die normalerweise irgendwann lesen, bevor sie die Änderung angenommen haben: Ein Vorschlag, wie sich die Änderung auf ihren vorhandenen Code auswirkt.
Ist die Nachricht vorwiegend als Tagebuch / Aufzeichnung für Sie selbst (oder für Ihr Team), aber in der Regel aus der Perspektive gelesen, die Änderung angenommen zu haben und zurück zu suchen, um herauszufinden, was passiert ist.
Vielleicht führt dies die Motivation für Ihr Team / Projekt in beide Richtungen.
quelle
ist es wichtig Leute sind im Allgemeinen klug genug, um Nachrichten richtig zu interpretieren. Wenn dies nicht der Fall ist, sollten Sie sie wahrscheinlich sowieso nicht auf Ihr Repository zugreifen lassen!
quelle
Es liegt an dir. Verwenden Sie einfach die Commit-Nachricht, wie Sie möchten. Es ist jedoch einfacher, wenn Sie nicht zwischen Zeiten und Sprachen wechseln.
Und wenn Sie sich in einem Team entwickeln, sollte dies besprochen und festgelegt werden.
quelle