Eu mudei do Subversion para o Git como meu VCS diário no ano passado e ainda estou tentando entender os pontos mais delicados do "Git-think".
O que me incomoda ultimamente são as tags "leves" vs. anotadas vs. assinadas. Parece universalmente aceito que as tags anotadas são superiores às leves para todos os usos reais, mas as explicações que encontrei para o porquê desse caso sempre parecem se resumir a "porque as melhores práticas" ou "porque são diferentes" . Infelizmente, esses argumentos são muito insatisfatórios sem saber por que são as melhores práticas ou como essas diferenças são relevantes para o meu uso do Git.
Quando mudei para o Git, tags leves pareciam ser a melhor coisa desde pão fatiado; Eu poderia simplesmente apontar para um commit e dizer "that was 1.0". Estou tendo problemas para entender como uma tag pode precisar ser mais do que isso, mas certamente não posso acreditar que os especialistas do Git em todo o mundo prefiram tags anotadas arbitrariamente! Então, o que é toda essa confusão?
(Pontos de bônus: por que eu precisaria assinar uma tag?)
EDITAR
Estou convencido de que as tags anotadas são uma coisa boa - saber quem marcou e quando é importante! Como acompanhamento, algum conselho sobre boas anotações de tags? Ambos git tag -am "tagging 1.0" 1.0
e tentar resumir o log de confirmação desde a tag anterior parecem perder estratégias.
git log --pretty=oneline master..HEAD | git tag -a -F - $BRANCH.$BUILD_NUMBER