Fermer plusieurs problèmes dans Github avec un message de validation

112

Je sais que vous pouvez résoudre les problèmes en mettant closes #1ou fixes #1dans le message de validation. Quelle est la meilleure façon de fermer plusieurs problèmes dans le même message de validation?

Aussi, il semble que l' utilisation fixesplutôt que closesne crée pas un lien du commettras message à la question, mais il ne près la question. Qu'est-ce qui se passe avec ça?

Rayne
la source

Réponses:

160

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

Les closesclauses peuvent être n'importe où dans le message et fixessont un synonyme valide:

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

Les éléments suivants utilisés pour le travail, mais de nos jours que les références questions # 2 et # 3.

Closes #1, #2, #3

Jakob Borg
la source
1
Cela ne semble pas fonctionner pour moi, cela ne ferme que le premier élément de la liste et pas les autres. La syntaxe a-t-elle changé depuis ce post? Je l'ai googlé, mais il ne semble pas y avoir beaucoup d'aide à ce sujet.
Mark Bell
1
D'accord. Corrections # 1, # 2 fonctionne pour référencer les deux ... mais ne ferme que # 1.
waldo
@waldo Je pense que cela a fonctionné quand je l'ai écrit - de nos jours, qu'en est-il Closes #1, closes #2, closes #3? Verbose et redondant, oui, mais peut-être que ça marche?
Jakob Borg
Ouais, "Corrections # 1 - Corrections # 2 - message de validation réel." fonctionne et a du sens (si verbeux) - c'est-à-dire que je ferme et renvoie clairement (sans fermer) plusieurs problèmes différents à partir d'un seul message de validation.
waldo
2
Une idée pourquoi ils ont changé le comportement de Closes #1, #2, #3? Je trouve ridicule d'écrire 10 closesplus les numéros des problèmes qui doivent être clôturés au lieu d'une seule clôture et tous les chiffres après cela. : - /
rbaleksandar
38

La réponse et un commentaire à cette réponse mentionnent le format suivant:

Ferme le # 1, ferme le # 2, ferme le # 3; Message de validation réel

Si j'avais un projet qui valait la peine de participer et que quelqu'un envoyait une pull request avec de tels messages de validation, je refuserais le pull, quelle que soit la beauté du code.

Il est possible que ce ne soit qu'une question de préférence personnelle et que cela finisse par être complètement battu par des personnes habituées à compacter les messages de commit qui encombrent les résumés d'historique de Git, mais je préférerais de beaucoup voir les messages de commit avec le format:

Résumé de la modification apportée.

Correction des bogues suivants:
* Chargeur d'erreur modifié, corrige # 1
* Renvoyé un pointeur non périmé, corrige # 2
* Ajout de nouveaux graphiques aux éléments de l' interface graphique, ferme le # 3

Il a demandé la meilleure façon de résoudre plusieurs problèmes.

Notez également que si vous transmettez la validation avec le message à une autre branche que la branche par défaut actuelle de votre référentiel, les problèmes ne seront référencés que. Pousser le commit vers la branche principale fermera les problèmes. Voir: Le lien vers le numéro de problème GitHub ne fonctionne pas?

JNissi
la source
Juste essayé votre chemin. Je dois être honnête, j'aime vraiment ça!
Billy Coover
9

Notez que depuis janvier 2013 , "Closing Issues via Commit Messages" a changé:

Désormais, lorsque vous entrez " Fixes #33" dans un message de validation, le problème 33 ne sera fermé qu'une fois que le commit sera fusionné dans votre branche par défaut (généralement master) .

Ceci est très utile car cela signifie que le statut ouvert / fermé du problème correspondra à votre branche par défaut.
Si le bogue n'est pas corrigé dans votre branche par défaut, le problème restera ouvert.
Une fois que le commit avec le correctif est fusionné dans votre branche par défaut, le problème sera automatiquement fermé.

Vous pouvez utiliser l'un de ces mots clés pour fermer un problème via un message de validation:

close, closes, closed, fixes, fixed

Comme l'illustre la question « Clôturer un problème GitHub sur une autre branche », cela provoque une certaine confusion au début.

VonC
la source
1

«Closing issues using keywords» est un document de GitHub qui décrit comment fermer des problèmes, des balises et comment fermer plusieurs problèmes.

Pour répondre à vos questions, la réponse de GitHub est:

Clôturer plusieurs problèmes

Pour clôturer plusieurs problèmes, faites précéder chaque référence de problème de l'un des mots clés ci-dessus. Vous devez utiliser le mot-clé avant chaque problème auquel vous faites référence pour que le mot-clé fonctionne.

Par exemple, ceci ferme le n ° 34, ferme le n ° 23 et ferme le fichier example_user / example_repo # 42 clôturerait les numéros 34 et 23 dans le même référentiel et le n ° 42 dans le référentiel "example_user / example_repo".

Vlad Bezden
la source