Schließen mehrerer Probleme in Github mit einer Festschreibungsnachricht

112

Ich weiß, dass Sie Probleme schließen können, indem Sie closes #1oder fixes #1in die Commit-Nachricht einfügen. Was ist der beste Weg, um mehrere Probleme in derselben Commit-Nachricht zu schließen?

Auch scheint es , dass die Verwendung fixesanstatt closeskeinen Link erstellen aus der Nachricht an das Problem zu begehen, aber es tut schließt das Problem. Was ist damit?

Rayne
quelle

Antworten:

160

Closes #1, closes #2, closes #3; rest of commit message.

Die closesKlauseln können sich an einer beliebigen Stelle in der Nachricht befinden und fixessind ein gültiges Synonym:

This fixes a memory leak in foo() that closes #4,
also fixes #5 which is a duplicate.

Das Folgende hat früher funktioniert, bezieht sich heute jedoch nur noch auf die Probleme Nr. 2 und Nr. 3.

Closes #1, #2, #3

Jakob Borg
quelle
1
Dies scheint bei mir nicht zu funktionieren, es schließt nur das erste Element in der Liste und nicht die anderen. Hat sich die Syntax seit diesem Beitrag geändert? Ich habe es gegoogelt, aber es scheint nicht viel Hilfe zu geben.
Mark Bell
1
Einverstanden. Die Korrekturen Nr. 1, Nr. 2 verweisen auf beide ... schließen jedoch nur Nr. 1.
Waldo
@waldo Ich denke, das hat funktioniert, als ich es geschrieben habe - heutzutage wie wäre es dann Closes #1, closes #2, closes #3? Ausführlich und überflüssig, ja, aber vielleicht funktioniert es?
Jakob Borg
Ja, "Fixes # 1 - Fixes # 2 - tatsächliche Commit-Nachricht." funktioniert und macht Sinn (wenn ausführlich) - dh ich schließe und verweise (ohne zu schließen) mehrere verschiedene Probleme aus einer einzigen Festschreibungsnachricht.
Waldo
2
Irgendeine Idee, warum sie das Verhalten von geändert haben Closes #1, #2, #3? Ich finde es lächerlich, 10 closesplus die Nummern der Probleme zu schreiben, die geschlossen werden sollen, anstatt eines einzelnen Abschlusses und alle Zahlen danach. : - /
rbaleksandar
38

Die Antwort und ein Kommentar zu dieser Antwort erwähnen das folgende Format:

Schließt # 1, schließt # 2, schließt # 3; Aktuelle Festschreibungsnachricht

Wenn ich ein Projekt hätte, an dem es sich zu beteiligen lohnt, und jemand eine Pull-Anfrage mit solchen Commit-Nachrichten gesendet hätte, würde ich den Pull ablehnen, egal wie schön der Code war.

Es ist möglich, dass dies nur eine Frage meiner persönlichen Präferenz ist und von Leuten, die Commit-Nachrichten komprimieren, die Git-Verlaufszusammenfassungen überladen, bis auf den Grund geschlagen wird, aber ich würde Commit-Nachrichten mit dem Format viel lieber sehen:

Zusammenfassung der vorgenommenen Änderung.

Folgende Fehler wurden behoben :
* Modifizierter
Fehlerlader , Fixes # 1 * Rückgabe eines nicht veralteten Zeigers, Fixes # 2
* Neue Grafiken auf GUI-Elemente angewendet , # 3 geschlossen

Er fragte nach dem besten Weg, um mehrere Probleme zu schließen.

Beachten Sie außerdem, dass die Probleme nur referenziert werden, wenn Sie das Commit mit der Nachricht an einen anderen Zweig als den aktuellen Standardzweig Ihres Repositorys senden. Wenn Sie das Commit an den Hauptzweig senden, werden die Probleme geschlossen. Siehe: Link zur GitHub-Ausgabenummer funktioniert nicht?

JNissi
quelle
Ich habe es gerade versucht. Ich muss ehrlich sein, das gefällt mir wirklich gut!
Billy Coover
9

Beachten Sie, dass sich seit Januar 2013 "Probleme über Commit-Nachrichten schließen" geändert hat:

Wenn Sie jetzt " Fixes #33" in eine Festschreibungsnachricht eingeben , wird Ausgabe 33 erst geschlossen, wenn die Festschreibung (normalerweise master) in Ihrem Standardzweig zusammengeführt wird .

Dies ist sehr nützlich, da der offene / geschlossene Status des Problems Ihrem Standardzweig zugeordnet wird.
Wenn der Fehler in Ihrem Standardzweig nicht behoben ist, bleibt das Problem offen.
Sobald das Commit mit dem Fix in Ihrem Standardzweig zusammengeführt wurde, wird das Problem automatisch geschlossen.

Sie können eines dieser Schlüsselwörter verwenden, um ein Problem über eine Festschreibungsnachricht zu schließen:

close, closes, closed, fixes, fixed

Wie die Frage " Schließen eines GitHub-Problems in einem anderen Zweig " zeigt, führt dies zunächst zu Verwirrung.

VonC
quelle
1

"Schließen von Problemen mithilfe von Schlüsselwörtern" ist ein Dokument von GitHub, in dem beschrieben wird, wie Probleme, Tags und mehrere Probleme geschlossen werden.

Um Ihre Fragen zu beantworten, lautet die Antwort von GitHub:

Mehrere Probleme schließen

Um mehrere Probleme zu schließen, stellen Sie jeder Problemreferenz eines der oben genannten Schlüsselwörter voran. Sie müssen das Schlüsselwort vor jedem Problem verwenden, auf das Sie verweisen, damit das Schlüsselwort funktioniert.

Beispiel: Dies schließt # 34, schließt # 23 und schließt example_user / example_repo # 42 würde die Probleme # 34 und # 23 im selben Repository und das Problem # 42 im Repository "example_user / example_repo" schließen.

Vlad Bezden
quelle