Non vorrei archiviare i rami. In altre parole, le filiali si archiviano da sole. Quello che vuoi è assicurare che le informazioni rilevanti per gli archeologi possano essere trovate con mezzi affidabili. Affidabili in quanto aiutano lo sviluppo quotidiano e non aggiungono un ulteriore passaggio al processo di completamento del lavoro. Cioè, non credo che le persone si ricorderanno di aggiungere un tag una volta che hanno finito con un ramo.
Ecco due semplici passaggi che aiuteranno enormemente lo sviluppo archeologico e.
- Link each task branch with an associated issue in the issue tracker using a simple naming convention.
- Utilizzare sempre
git merge --no-ff
per unire i rami attività; vuoi che si unisca la bolla commit e cronologia, anche per un solo commit.
Questo è tutto. Perché? Perché come archeologo del codice, raramente comincio a voler sapere quale lavoro è stato svolto su una filiale. Molto più spesso
è per questo che in tutti gli urlanti nove inferni il codice è scritto in questo modo ?!
Ho bisogno di cambiare codice, ma ha alcune caratteristiche strane, e ho bisogno di risolverli per evitare di rompere qualcosa di importante.
Il passaggio successivo è git blame
per trovare i commit associati e quindi sperare che il messaggio di registro sia esplicativo. Se ho bisogno di scavare più a fondo, scoprirò se il lavoro è stato fatto in un ramo e leggere il ramo nel suo insieme (insieme al suo commento nel tracker del problema).
Diciamo git blame
punti al commit XYZ. Apro un browser storia Git (gitk, GitX, git log --decorate --graph
, ecc ...), trovare commettere XYZ e vedere ...
AA - BB - CC - DD - EE - FF - GG - II ...
\ /
QQ - UU - XYZ - JJ - MM
C'è mio ramo! So che QQ, UU, XYZ, JJ e MM fanno tutti parte dello stesso ramo e dovrei guardare i loro messaggi di registro per i dettagli. So che GG sarà un commit di merge e avrà il nome del ramo che si spera sia associato a un problema nel tracker.
Se, per qualche ragione, voglio trovare un vecchio ramo, posso eseguire git log
e cercare il nome del ramo nel commit di unione. È abbastanza veloce anche su repository di grandi dimensioni.
Questo è ciò che intendo quando dico che gli archivi di rami stessi.
Tagging su ogni ramo aggiunge lavoro inutile per ottenere risultati (un processo critico che deve essere spietatamente snellito), gum su l'elenco di tag (non parlando di prestazioni, ma leggibilità umana) con centinaia di tag che sono solo molto occasionalmente utili e non è nemmeno molto utile per l'archeologia.
git-rm non elimina le risorse dal repository, le rimuove solo dall'indice http://www.kernel.org/pub/software/scm/git/docs/git-rm.html Puoi facilmente ripristinare queste risorse usano 'git checkout [rev] file' –
Non che io sappia. Io uso 'Attic/' tag leggeri per archiviare i rami, però. I tag –
sono la scelta rapida, sicura e sana. – kch