Para lançamentos, normalmente uso algo como v1.1.0. Durante meu script de construção, estou criando um arquivo fwVersion.c que contém as informações atuais do git. Atualmente, tenho commit e informações de branch no arquivo, mas gostaria de adicionar a tag.
Isso é possível?
git describe --tags <commit-id>
para tags não anotadasgit describe --all --exact-match `git rev-parse HEAD`
git describe --tags --abbrev=0 REV
será útil quando você não quiser o lixo na etiqueta.git describe --all
(para o commit atualmente verificado) ougit describe --all <commit>
sempre fiz tudo o que sempre quis.Se o que você quer é a primeira tag contendo o commit, então:
dá a melhor resposta IMO. Se você tiver tags frequentes, o uso de "git tag --contains" em um commit antigo em um grande repositório pode demorar um pouco para ser executado e fornece todas as tags que contêm esse commit.
Esta forma de git describe é executada muito rapidamente e dá a você um único valor de saída que é a primeira tag contendo o commit e o quão longe ele está.
fonte
Que tal agora?
git tag --points-at <commit-id>
Ele dá a você todas as tags que o commit fornecido tem (enquanto
git describe
fornece apenas uma), e não inclui tags nos commits descendentes (comogit tag --contains
faz).fonte
Você pode encontrar esta informação no manual
fonte
Eu encontrei a combinação das duas principais respostas para me dar o que eu queria, então:
Isso dá a você a tag que é APENAS para aquele commit e para aqueles sem anotação. Útil quando você deseja encontrar tags e não se preocupar em remover a formatação (para Jenkins, por exemplo).
por exemplo.
$ git describe --tags --exact-match head~2
Da-te:
fonte
Consolidando algumas das respostas:
git tag --contains [<ref>]
e
git tag --points-at [<ref>]
ou apenas
git tag
comporte-se da mesma forma, imprimindo qualquer (e todas) tags para o ref especificado ou o commit atual se não for especificado.
git describe --tags [<ref>]
onde o
<ref>
padrão é o commit atual, sai com 128 se nenhuma tag estiver associada ao commit e imprime uma tag associada ao commit (não parece haver um padrão).git describe [<ref>]
se comporta da mesma forma que com,--tags
exceto que só imprime tags anotadas.Fornecer a opção
--contains
dedescribe
imprimirá a tag que está associada a um ancestral do commit especificado. Por exemplofonte