Link zur Ausgabenummer auf GitHub in einer Commit-Nachricht

Antworten:

953

Fügen #xxxSie einfach in Ihre Commit-Nachricht ein, um auf ein Problem zu verweisen, ohne es zu schließen.

Mit neuen GitHub-Problemen 2.0 können Sie diese Synonyme verwenden, um auf ein Problem zu verweisen und es zu schließen (in Ihrer Commit-Nachricht):

  • fix #xxx
  • fixes #xxx
  • fixed #xxx
  • close #xxx
  • closes #xxx
  • closed #xxx
  • resolve #xxx
  • resolves #xxx
  • resolved #xxx

Sie können auch ersetzen #xxxmit gh-xxx.

Das Referenzieren und Schließen von Problemen über Repos hinweg funktioniert auch:

fixes user/repo#xxx

Lesen Sie die Dokumentation in der Hilfe.

NARKOZ
quelle
4
Fix issue #xxxfunktioniert bei mir nicht, irgendwelche ideen? Es verweist auf das Problem, schließt es jedoch nicht.
Dennis
16
@ Tennis entfernen Sie das Wort "Problem"
1
@ JamesTomasino das ist möglich - Ich habe festgestellt, dass dies bei mir nicht funktioniert hat, wenn ich an einem Zweig namens arbeite dev.
Jon Cairns
1
In welchen Situationen soll jeder eingesetzt werden?
Nilsi
1
Ich werde nicht die Person sein, die diese Antwort von 666 auf 667 Stimmen verschiebt, aber das war SEHR hilfreich.
Jakeatwork
168

Wenn Sie einen Link zu einem GitHub-Problem erstellen und das Problem schließen möchten , können Sie in Ihrer Git-Commit-Nachricht die folgenden Zeilen angeben:

Closes #1.
Closes GH-1.
Closes gh-1.

(Jeder der drei funktioniert.) Beachten Sie, dass dies einen Link zum Problem darstellt und es auch schließt . Weitere Informationen finden Sie in diesem Blog-Beitrag (sehen Sie sich das eingebettete Video um ca. 1:40 Uhr an).

Ich bin nicht sicher, ob eine ähnliche Syntax einfach auf ein Problem verweist, ohne es zu schließen.

Mipadi
quelle
31
Sie können einfach die Nummer des Problems verwenden (z. B. # 456), das mit der Aufgabe verknüpft wird, ohne sie zu schließen.
Matthieu Napoli
9
Ich würde "gh-1" gegenüber "# 1" wählen, einfach weil Sie nie wissen, ob das Repository an einen anderen Ort als Github exportiert / gespiegelt wird. Dann macht die "# 1" nicht viel Sinn.
Huyz
2
@mipadi: Ist das .Nach "Schließt GH-1" notwendig? Auch wird zwischen Groß- und Kleinschreibung unterschieden?
Lekensteyn
1
@Lekensteyn: Ich glaube nicht, dass der Zeitraum notwendig ist. Ich bin mir nicht sicher, ob ich zwischen Groß- und Kleinschreibung unterscheiden soll.
Mipadi
message (closes GH-28)funktioniert bei mir, nicht sicher, ob bei allem die Groß- und Kleinschreibung nicht berücksichtigt wird.
Lekensteyn
64

Sie können auch Repos referenzieren:

githubuser/repository#xxx

xxx ist die Ausgabenummer

narkeeso
quelle
62

github fügt einen Verweis auf das Commit hinzu, wenn es #issuenbr enthält (dies wurde zufällig entdeckt).

Henrik Lindberg
quelle
4
habe es gerade getestet, funktioniert wie ein Zauber, danke ... dies ist diejenige, die als richtige Antwort markiert werden sollte ...
eröffnet
14

Sie haben einen schönen Bericht über die neuen Ausgaben 2.0 in ihrem Blog https://github.blog/2011-04-09-issues-2-0-the-next-generation/

Synonyme umfassen

  • behebt #xxx
  • #xxx behoben
  • behebe #xxx
  • schließt #xxx
  • schließe #xxx
  • geschlossen #xxx

Wenn Sie eines der Schlüsselwörter in einer Festschreibungsnachricht verwenden, wird Ihr Festschreiben entweder erwähnt oder ein Problem wird geschlossen.

xero
quelle
Das war schon in meiner Liste, ich glaube nicht, dass sie zwischen Groß- und Kleinschreibung unterscheiden.
Xero
4

Ebenso wie zu den anderen Antworten: Wenn Sie nicht einmal die Commit-Nachricht mit der Problemnummer schreiben möchten und Eclipse für die Entwicklung verwenden möchten, können Sie die Plugins eGit und Mylyn sowie den GitHub-Connector für Mylyn installieren. Eclipse kann dann automatisch verfolgen, an welchem ​​Problem Sie arbeiten, und die Festschreibungsnachricht automatisch ausfüllen , einschließlich der Problemnummer, wie in allen anderen Antworten angegeben.

Weitere Informationen zu diesem Setup finden Sie unter http://wiki.eclipse.org/EGit/GitHub/UserGuide

Bananeweizen
quelle
4

Um die Ausgabenummer mit Ihrer Commit-Nachricht zu verknüpfen, sollten Sie Folgendes hinzufügen: #issue_numberin Ihrer Git-Commit-Nachricht.

Beispiel für eine Commit-Nachricht aus dem Udacity Git Commit Message Style Guide

feat: Summarize changes in around 50 characters or less

More detailed explanatory text, if necessary. Wrap it to about 72
characters or so. In some contexts, the first line is treated as the
subject of the commit and the rest of the text as the body. The
blank line separating the summary from the body is critical (unless
you omit the body entirely); various tools like `log`, `shortlog`
and `rebase` can get confused if you run the two together.

Explain the problem that this commit is solving. Focus on why you
are making this change as opposed to how (the code explains that).
Are there side effects or other unintuitive consequenses of this
change? Here's the place to explain them.

Further paragraphs come after blank lines.

 - Bullet points are okay, too

 - Typically a hyphen or asterisk is used for the bullet, preceded
   by a single space, with blank lines in between, but conventions
   vary here

If you use an issue tracker, put references to them at the bottom,
like this:

Resolves: #123
See also: #456, #789

Sie können auch auf die Repositorys verweisen:

githubuser/repository#issue_number
Suhas Srivats Subburathinam
quelle
Es macht keinen Sinn (und ärgert mich tatsächlich), dass sie "feat" als Abkürzung für "feature" verwenden, insbesondere wenn sie gleichzeitig "refactor" verwenden, das sogar länger als "feature" ist.
Michel Jung
@MichelJung könnte man argumentieren, dass featöfter verwendet wird als refactor, außerdem gibt es keine offensichtliche Abkürzung für refactor( refkönnte Referenz bedeuten, rfist zu unklar usw.).
Chris Kraszewski
3

Eines meiner ersten Projekte als Programmierer war ein Juwel namens Stagecoach , das (unter anderem) das automatische Hinzufügen einer Github-Ausgabenummer zu jeder Commit-Nachricht in einem Zweig ermöglichte, was ein Teil der Frage ist, die nicht wirklich beantwortet wurde .

Im Wesentlichen würden Sie beim Erstellen eines Zweigs einen benutzerdefinierten Befehl (so etwas wie stagecoach -b <branch_name> -g <issue_number>) verwenden, und die Ausgabenummer würde dann diesem Zweig in einer yml-Datei zugewiesen. Es gab dann einen Festschreibungs-Hook , der die Ausgabenummer automatisch an die Festschreibungsnachricht anhängte.

Ich würde es nicht für die Produktion empfehlen, da ich zu der Zeit nur ein paar Monate programmiert hatte und es nicht mehr pflege, aber es könnte für jemanden von Interesse sein.

Omnikron
quelle
Ich denke, Ihre Antwort versucht, die genaue Frage aus dem OP zu beantworten, dh "eine Möglichkeit, automatisch einen Link zu dem im Commit hinzugefügten Problem zu erhalten". Alle anderen Antworten hängen davon ab, dass der Programmierer daran denkt, "Fixes # ..., Resolved # ... etc." hinzuzufügen. Satz zum Commit und dies wird nicht jedes Mal passieren, wie wir es kennen. Upvoting.
Demisx