Nie archiwizowałbym oddziałów. Innymi słowy, same oddziały archiwizują się. Chcemy, aby informacje istotne dla archeologów można było znaleźć w wiarygodny sposób. Niezawodny, ponieważ pomagają w codziennym rozwoju i nie stanowią dodatkowego kroku w procesie wykonywania pracy. Oznacza to, że nie sądzę, aby ludzie pamiętali, aby dodać tag po zakończeniu pracy z gałęzią.
Oto dwa proste kroki, które znacznie pomogą archeologii i rozwojowi.
- Połącz każdą gałąź zadania z powiązanym problemem w narzędziu do śledzenia problemów, używając prostej konwencji nazewnictwa .
- Zawsze używaj
git merge --no-ffdo scalania gałęzi zadań; chcesz, aby scalenie zatwierdzenia i historia bąbelkowały, nawet tylko dla jednego zatwierdzenia.
Otóż to. Dlaczego? Ponieważ jako archeolog kodu rzadko zaczynam od chęci dowiedzenia się, jakie prace wykonano na gałęzi. O wiele częściej to dlatego w tych wszystkich krzyczących dziewięciu piekłach kod jest napisany w ten sposób ?! Muszę zmienić kod, ale ma on pewne dziwne funkcje i muszę je rozszyfrować, aby uniknąć zepsucia czegoś ważnego.
Następnym krokiem jest git blameznalezienie powiązanych zatwierdzeń, a następnie nadzieja, że komunikat dziennika jest objaśniający. Jeśli będę musiał kopać głębiej, dowiem się, czy praca została wykonana w oddziale i przeczytam gałąź jako całość (wraz z komentarzem w module do śledzenia problemów).
Powiedzmy git blamepunkty przy zatwierdzeniu XYZ. Otwieram przeglądarkę historii Git (gitk, GitX git log --decorate --graphitp.), Znajduję XYZ i widzę ...
AA - BB - CC - DD - EE - FF - GG - II ...
\ /
QQ - UU - XYZ - JJ - MM
Tam jest mój oddział! Wiem, że QQ, UU, XYZ, JJ i MM są częścią tego samego oddziału i powinienem zapoznać się z ich komunikatami dziennika, aby uzyskać szczegółowe informacje. Wiem, że GG będzie zatwierdzeniem scalania i będzie miało nazwę oddziału, który, mam nadzieję, jest związany z problemem w module śledzącym.
Jeśli z jakiegoś powodu chcę znaleźć starą gałąź, mogę uruchomić git logi wyszukać nazwę gałęzi w zatwierdzeniu scalania. Jest wystarczająco szybki nawet w bardzo dużych repozytoriach.
Właśnie to mam na myśli, mówiąc, że oddziały same się archiwizują.
Oznaczanie każdej gałęzi dodaje niepotrzebną pracę do wykonania zadania (krytyczny proces, który powinien być bezwzględnie usprawniony), rozbija listę tagów (nie mówiąc o wydajności, ale czytelność dla człowieka) za pomocą setek tagów, które są bardzo okazjonalnie przydatne i nie jest nawet bardzo przydatne w archeologii.
git checkout [rev] file