Chiusura di più problemi in GitHub con un messaggio di commit


112

So che puoi chiudere i problemi inserendo closes #1o fixes #1nel messaggio di commit. Qual è il modo migliore per chiudere più problemi nello stesso messaggio di commit?

Inoltre, sembra che l'uso fixespiuttosto che closesnon crea un collegamento dal messaggio di commit al problema, ma non vicino la questione. Cosa succede con quello?


Risposte:


160

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

Le closesclausole possono essere ovunque nel messaggio ed fixesè un sinonimo valido:

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

Di seguito utilizzato per il lavoro, ma al giorno d'oggi solo riferimenti problemi # 2 e # 3.

Closes #1, #2, #3


1
Questo non sembra funzionare per me, chiude solo il primo elemento della lista e non gli altri. La sintassi è cambiata da questo post? L'ho cercato su Google, ma non sembra esserci molto aiuto su questo.
Mark Bell

1
Concordato. Le correzioni # 1, # 2 funzionano per fare riferimento a entrambe ... ma chiudono solo # 1.
waldo

@waldo Penso che abbia funzionato quando l'ho scritto - oggi allora, che ne dici Closes #1, closes #2, closes #3? Verboso e ridondante, sì, ma forse funziona?
Jakob Borg

Sì, "Correzioni # 1 - Correzioni # 2 - messaggio di commit effettivo." funziona e ha un senso (se dettagliato) - cioè chiudo chiaramente e riferisco (senza chiudere) più problemi diversi da un singolo messaggio di commit.
waldo

2
Qualche idea sul perché hanno cambiato il comportamento di Closes #1, #2, #3? Trovo ridicolo scrivere 10 closespiù i numeri delle questioni da chiudere invece di una singola chiusura e tutti i numeri successivi. : - /
rbaleksandar

38

La risposta e un commento a tale risposta menzionano il seguente formato:

Chiude # 1, chiude # 2, chiude # 3; Messaggio di commit effettivo

Se avessi un progetto a cui vale la pena partecipare e qualcuno inviasse una richiesta di pull con tali messaggi di commit, rifiuterei il pull indipendentemente da quanto fosse bello il codice.

È possibile che sia solo una questione di mie preferenze personali e finirà per essere battuto a terra da persone abituate a compattare i messaggi di commit che ingombrano i riepiloghi della cronologia di Git, ma preferirei di gran lunga vedere i messaggi di commit con il formato:

Riepilogo della modifica apportata.

Risolti i seguenti bug:
* Caricatore di errori modificato, correzioni n.1
* Restituito un puntatore non aggiornato, correzioni n.2
* Nuova grafica applicata agli elementi della gui, chiusura n.3

Ha chiesto il modo migliore per chiudere più questioni.

Si noti inoltre che se si invia il commit con il messaggio a qualsiasi altro ramo diverso dal ramo predefinito corrente del proprio repository, i problemi verranno solo referenziati. Spingere il commit al ramo principale chiuderà i problemi. Vedi: Link al numero di problema di GitHub non funziona?


Ho appena provato a fare a modo tuo. Devo essere onesto, questo mi piace davvero!
Billy Coover

9

Tieni presente che, da gennaio 2013 , "Risoluzione dei problemi tramite messaggi di commit" è cambiato:

Ora quando inserisci " Fixes #33" in un messaggio di commit, il problema 33 verrà chiuso solo una volta che il commit è stato unito al tuo ramo predefinito (di solito master) .

Questo è molto utile perché significa che lo stato di apertura / chiusura del problema verrà mappato al tuo ramo predefinito.
Se il bug non viene risolto nel ramo predefinito, il problema rimarrà aperto.
Una volta che il commit con la correzione è stato unito al tuo ramo predefinito, il problema verrà chiuso automaticamente.

Puoi utilizzare una qualsiasi di queste parole chiave per chiudere un problema tramite il messaggio di commit:

close, closes, closed, fixes, fixed

Come illustrato dalla domanda " Chiusura di un problema di GitHub su un ramo diverso ", all'inizio questo causa un po 'di confusione.


1

"Chiusura dei problemi utilizzando le parole chiave" è un documento di GitHub che descrive come chiudere i problemi, i tag e come chiudere più problemi.

Per rispondere alle tue domande la risposta di GitHub è:

Chiusura di più problemi

Per chiudere più problemi, anteporre a ciascun riferimento il problema con una delle parole chiave precedenti. È necessario utilizzare la parola chiave prima di ogni problema a cui si fa riferimento affinché la parola chiave funzioni.

Ad esempio, questo chiude # 34, chiude # 23 e chiude example_user / example_repo # 42 chiuderebbe i problemi # 34 e # 23 nello stesso repository e il problema # 42 nel repository "example_user / example_repo".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.