Por que git log --decorate
não exibe mais de uma tag por confirmação?
EDIT : Charles Bailey veio com a resposta (pelo menos no meu caso)
Essencialmente, eu tinha uma tag que apontava para outra tag que apontava para o commit. Por causa dessa camada extra de indireção, a tag não estava aparecendo no log. Terei que consertar isso, definhar corrigindo nosso script de marcação para marcar corretamente ou por algum vodu de script de shell para seguir as marcações recursivamente. De qualquer forma, vou deixar essa questão de lado apenas para referência, caso alguém queira. (Sou novo no estouro de pilha, mas presumo que seja o protocolo correto?)
... Segue-se a pergunta original ...
História de fundo: Usamos GIT no trabalho para controle de origem e temos uma política de sempre marcar um commit quando implantamos. (Na verdade, é um script que faz tags e, em seguida, puxa a tag no servidor). Como é um aplicativo da web com servidores de teste e produção separados, geralmente marcamos uma versão para teste (para teste ou qualquer outra coisa) e, posteriormente, marcamos o mesmo commit para produção.
Portanto, é muito comum termos várias tags no mesmo commit. Seria muito bom poder ver isso no log de texto, mas parece que não dá suporte. No momento, estou resolvendo o problema verificando manualmente a tag que estou procurando ou ativando gitk
. Embora ambas as soluções funcionem, me parece realmente estranho git log --decorate
suportar apenas uma tag por commit por padrão.
Fiz algumas pesquisas no Google, mas não achei muito. Estou perdendo algo óbvio?
PS (Na verdade, uso uma string de formato personalizado com %d
, de acordo com as páginas do manual e alguns testes rápidos, é equivalente a --decorate
)
Respostas:
Observação sobre tag de tag (marcar uma tag), que está na origem de seu problema, como Charles Bailey corretamente apontou no comentário:
Certifique-se de estudar este tópico , pois substituir uma tag assinada não é tão fácil:
git tag
página de manual aconselhou seriamente contra uma simplesgit tag -f B
substituição de um nome de tag "A
"não tente recriar uma tag assinada com
git tag -f
(veja o extrato do tópico abaixo)(trata-se de um caso esquivo, mas bastante instrutivo sobre tags em geral, e vem de outro colaborador do SO, Jakub Narębski ):
fonte
Esta versão imprimirá a mensagem de confirmação também:
fonte
Nota: o commit 5e1361c de brian m. carlson (
bk2204
) (para git 1.9 / 2.0 Q1 2014) trata de um caso especial em termos de decoração de log com tags:registro: manuseie adequadamente as decorações com etiquetas encadeadas
Exemplo:
fonte