Я бы не архивировал ветки. Иными словами, ветки архивируют сами. Вы хотите, чтобы информация, относящаяся к археологам, была надежно найдена. Надежный в том, что он помогает в ежедневном развитии и не добавляет дополнительного шага к процессу выполнения работы. То есть, я не верю, что люди не забудут добавить тег, как только они закончат работу с веткой.
Вот два простых шага, которые очень помогут археологии и развитию.
- Свяжите каждую ветку задач со связанной проблемой в системе отслеживания проблем, используя простое соглашение об именах .
- Всегда используйте
git merge --no-ffдля объединения веток задач; Вы хотите, чтобы коммит слияния и история всплыли, даже для одного коммита.
Вот и все. Зачем? Потому что, как археолог-программист, я редко начинаю с того, что хочу узнать, какая работа была проделана на ветке. Гораздо чаще именно поэтому во всех кричащих девочках код написан таким образом ?! Мне нужно изменить код, но у него есть некоторые странные особенности, и мне нужно разобраться с ними, чтобы не нарушать что-то важное.
Следующий шаг - git blameнайти связанные коммиты, а затем надеяться, что сообщение журнала будет пояснительным. Если мне нужно будет покопаться глубже, я выясню, была ли работа выполнена в ветке, и прочту всю ветку в целом (вместе с ее комментарием в трекере проблем).
Скажем, git blameуказывает на коммит XYZ. Я открываю браузер истории Git (gitk, GitX git log --decorate --graphи т. Д.), Нахожу коммит XYZ и вижу ...
AA - BB - CC - DD - EE - FF - GG - II ...
\ /
QQ - UU - XYZ - JJ - MM
Там моя ветка! Я знаю, что QQ, UU, XYZ, JJ и MM все являются частью одной и той же ветви, и я должен посмотреть на их сообщения журнала для деталей. Я знаю, что GG будет коммитом слияния и будет иметь название ветви, которая, возможно, связана с проблемой в трекере.
Если по какой-то причине я хочу найти старую ветвь, которую я могу запустить, git logи искать имя ветки в коммите слияния. Это достаточно быстро даже на очень больших репозиториях.
Вот что я имею в виду, когда говорю, что филиалы сами архивируют.
Добавление тегов к каждой ветви добавляет ненужную работу для достижения цели (критический процесс, который должен быть безжалостно упорядочен), объединяет список тегов (не говоря о производительности, но удобочитаемости) сотнями тегов, которые очень полезны лишь изредка, и не ' даже очень полезно для археологии.
git checkout [rev] file