Sono passato da Subversion a Git come il mio VCS quotidiano l'anno scorso e sto ancora cercando di cogliere i punti più sottili di "Git-think".
Quello che mi ha infastidito di recente è il tag "leggero" rispetto ai tag annotati e firmati. Sembra universalmente accettato che i tag con annotazioni siano superiori ai tag leggeri per tutti gli usi reali, ma le spiegazioni che ho trovato per questo motivo sembrano sempre ridursi a "perché le migliori pratiche" o "perché sono diverse" . Sfortunatamente, questi sono argomenti molto insoddisfacenti senza sapere perché sono le migliori pratiche o come tali differenze sono rilevanti per il mio utilizzo di Git.
Quando sono passato per la prima volta a Git, i tag leggeri sembravano essere la cosa migliore dopo il pane a fette; Potrei semplicemente indicare un commit e dire "era 1.0". Ho difficoltà a capire come un tag potrebbe mai essere necessario essere più di questo, ma di certo non posso credere che gli esperti Git del mondo preferiscano arbitrariamente i tag annotati! Allora, di cosa si tratta?
(Punti bonus: perché mai dovrei aver bisogno di firmare un tag?)
MODIFICARE
Sono stato convinto con successo che i tag annotati siano una buona cosa: sapere chi è stato taggato e quando è importante! Come follow-up, qualche consiglio su buone annotazioni dei tag? Entrambi git tag -am "tagging 1.0" 1.0
e cercando di riassumere il registro di commit dal momento che il tag precedente sembra perdere strategie.
git log --pretty=oneline master..HEAD | git tag -a -F - $BRANCH.$BUILD_NUMBER