Я б не архівував філії. По-іншому, гілки архівують себе. Що ви хочете - це забезпечити інформацію, що стосується археологів, можна знайти надійними засобами. Надійний тим, що допомагає щоденному розвитку і не додає зайвого кроку до процесу роботи. Тобто, я не вірю, що люди згадають додати тег, коли вони закінчать із гілкою.
Ось два простих кроки, які значно допоможуть археології та розвитку.
- Зв’яжіть кожну гілку завдань із пов’язаною проблемою у трекері проблем, використовуючи просту конвенцію іменування .
- Завжди використовувати
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
і шукати ім'я гілки в комісії злиття. Це досить швидко навіть у дуже великих сховищах.
Це я маю на увазі, коли кажу, що філії архівів самі.
Позначення кожної гілки додає непотрібної роботи до виконання справ (критичний процес, який повинен бути безжально впорядкований), розшифровує список тегів (не кажучи про ефективність, але для людської читабельності) сотень тегів, які корисні лише зрідка і не є ' t навіть дуже корисний для археології.
git checkout [rev] file