Eu não arquivaria ramos. Dito de outra maneira, os ramos se arquivam. O que você deseja é garantir que as informações relevantes para os arqueólogos possam ser encontradas por meios confiáveis. Confiáveis, pois ajudam no desenvolvimento diário e não adicionam uma etapa extra ao processo de realização do trabalho. Ou seja, não acredito que as pessoas se lembrem de adicionar uma tag depois de concluir uma ramificação.
Aqui estão duas etapas simples que ajudarão muito a arqueologia e o desenvolvimento.
- Vincule cada ramo de tarefa a um problema associado no rastreador de problemas usando uma convenção de nomenclatura simples .
- Sempre use
git merge --no-ffpara mesclar ramificações de tarefas; você deseja que a consolidação de mesclagem e a bolha do histórico, mesmo para apenas uma consolidação.
É isso aí. Por quê? Porque como arqueólogo de código, raramente começo a querer saber o que foi feito em uma ramificação. Muito mais frequentemente , é por que em todos os nove infernos que gritamos o código está escrito dessa maneira ?! Preciso alterar o código, mas ele tem alguns recursos estranhos e preciso decifrá-los para evitar que algo importante seja quebrado.
O próximo passo é git blameencontrar as confirmações associadas e esperar que a mensagem de log seja explicativa. Se eu precisar aprofundar, vou descobrir se o trabalho foi feito em uma ramificação e ler a ramificação como um todo (junto com seus comentários no rastreador de problemas).
Digamos git blamepontos em confirmar XYZ. Eu abro um navegador de histórico do Git (gitk, GitX git log --decorate --graph, etc ...), localizo commit XYZ e vejo ...
AA - BB - CC - DD - EE - FF - GG - II ...
\ /
QQ - UU - XYZ - JJ - MM
Aqui está o meu ramo! Sei que QQ, UU, XYZ, JJ e MM fazem parte da mesma ramificação e devo ver suas mensagens de log para obter detalhes. Eu sei que o GG será um commit de mesclagem e tem o nome da ramificação que, espero, está associada a um problema no rastreador.
Se, por algum motivo, desejar encontrar um ramo antigo, eu possa executar git loge procurar o nome do ramo no commit de mesclagem. É rápido o suficiente, mesmo em repositórios muito grandes.
É isso que quero dizer quando digo que os próprios arquivos se ramificam.
Marcar cada ramificação adiciona trabalho desnecessário à realização de tarefas (um processo crítico que deve ser simplificado de forma implacável), organiza a lista de tags (sem falar em desempenho, mas legibilidade humana) com centenas de tags que são apenas ocasionalmente úteis e não é ' mesmo muito útil para arqueologia.
git checkout [rev] file