Fechar vários problemas no Github com uma mensagem de confirmação

112

Eu sei que você pode fechar os problemas colocando closes #1ou fixes #1na mensagem de confirmação. Qual é a melhor maneira de fechar vários problemas na mesma mensagem de confirmação?

Além disso, parece que o uso fixesao invés de closesnão criar um link da mensagem comprometer com a questão, mas não perto o assunto. O que há com isso?

Rayne
fonte

Respostas:

160

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

As closescláusulas podem estar em qualquer lugar da mensagem e fixessão um sinônimo válido:

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

O seguinte costumava funcionar, mas hoje em dia apenas faz referência aos problemas nº 2 e nº 3.

Closes #1, #2, #3

Jakob Borg
fonte
1
Isso não parece funcionar para mim, apenas fecha o primeiro item da lista e não os outros. A sintaxe mudou desde esta postagem? Pesquisei no Google, mas não parece haver muita ajuda por aí sobre isso.
Mark Bell
1
Acordado. Correções # 1, # 2 funcionam para fazer referência a ambos ... mas apenas fecham # 1.
waldo
@waldo Acho que funcionou quando eu escrevi - hoje em dia então, que tal Closes #1, closes #2, closes #3? Detalhado e redundante, sim, mas talvez funcione?
Jakob Borg
Sim, "Fixes # 1 - Fixes # 2 - mensagem de confirmação real." funciona e faz algum sentido (se prolixo) - ou seja, eu claramente fecho e refiro (sem fechar) vários problemas diferentes de uma única mensagem de confirmação.
Waldo
2
Alguma ideia de por que eles mudaram o comportamento de Closes #1, #2, #3? Acho ridículo escrever 10 closesmais os números das questões que estão para fechar em vez de um único fechamento e todos os números depois disso. : - /
rbaleksandar
38

A resposta e um comentário a essa resposta mencionam o seguinte formato:

Fecha # 1, fecha # 2, fecha # 3; Mensagem de confirmação real

Se eu tivesse um projeto no qual valesse a pena participar e alguém enviasse uma solicitação de pull com essas mensagens de commit, eu recusaria o pull, não importa o quão bonito seja o código.

É possível que isso seja apenas uma questão de minha preferência pessoal e acabe sendo derrotado por pessoas acostumadas a compactar mensagens de commit que bagunçam resumos de história do Git, mas eu preferiria muito mais ver mensagens de commit com o formato:

Resumo da alteração feita.

Os seguintes bugs foram corrigidos:
* Carregador de erro modificado, corrige # 1
* Retornou um ponteiro não obsoleto, corrigiu # 2
* Novos gráficos aplicados a elementos gui, fecha # 3

Ele perguntou sobre a melhor maneira de resolver vários problemas.

Observe também que se você enviar o commit com a mensagem para qualquer outro branch que não o branch padrão atual do seu repositório, os problemas serão apenas referenciados. Enviar o commit para o branch principal encerrará os problemas. Veja: O link para o número do problema do GitHub não está funcionando?

JNissi
fonte
Apenas tentei do seu jeito. Tenho que ser honesto, gosto muito disso!
Billy Coover,
9

Observe que, desde janeiro de 2013 , "Fechar problemas por meio de mensagens de confirmação" mudou:

Agora, quando você insere " Fixes #33" em uma mensagem de commit, o problema 33 só será fechado quando o commit for mesclado em seu branch padrão (normalmente master) .

Isso é muito útil porque significa que o status aberto / fechado do problema será mapeado para seu branch padrão.
Se o bug não for corrigido em seu branch padrão, o problema permanecerá aberto.
Assim que o commit com a correção for mesclado ao branch padrão, o problema será automaticamente encerrado.

Você pode usar qualquer uma dessas palavras-chave para fechar um problema por meio de uma mensagem de confirmação:

close, closes, closed, fixes, fixed

Conforme ilustrado pela pergunta " Fechando um problema do GitHub enquanto estiver em um branch diferente ", isso causa alguma confusão no início.

VonC
fonte
1

"Fechando problemas usando palavras-chave" é um documento do GitHub que descreve como fechar problemas, tags e como fechar vários problemas.

Para responder às suas perguntas, a resposta do GitHub é:

Fechando vários problemas

Para encerrar vários problemas, inicie cada referência de problema com uma das palavras-chave acima. Você deve usar a palavra-chave antes de cada questão que fizer referência para que funcione.

Por exemplo, Isto fecha # 34, fecha # 23 e fecha example_user / example_repo # 42 fecharia os problemas # 34 e # 23 no mesmo repositório e o problema # 42 no repositório "example_user / example_repo".

Vlad Bezden
fonte