Come posso raggruppare i commit in un sistema di controllo della versione come git

8

Invece di una cronologia di commit lunga e piatta, perché non esiste una gerarchia, quindi al livello più alto potresti avere richieste pull, quindi potresti scendere di un livello e osservare i commit in quella PR. Mi rendo conto che le PR sono specifiche per github, ma tu hai l'idea. Intendo solo raggruppare un numero di commit come funzionalità o correzione di errori, ad esempio.

Sicuramente renderebbe molto più facile navigare nella cronologia dei commit.

Sono certo che c'è una risposta ovvia a questa domanda, ma non riesco a trovarla.

    
posta eggbert 20.05.2014 - 10:47
fonte

3 risposte

9

C'è una cronologia di commit flat lungo perché le modifiche sono sequenziali. Ognuno costruisce sullo stato "prima" e lascia uno stato "dopo". Sarebbe difficile che le modifiche non riflettano questo.

Un'opzione per il raggruppamento di modifiche correlate è l'uso dei tag - link sebbene siano usati di più per contrassegnare un punto nella cronologia anziché raggruppare i commit disparati.

Per raggruppare insieme esegue il commit in quelli più grandi, puoi anche fare il rebasing interattivo.

I rami sono un'opzione, puoi creare un ramo e fare un mucchio di commit logicamente correlati. Puoi unire nuovamente questi commit al master come desiderato, probabilmente usando l'opzione --no-ff .

La relazione tra i rami può anche essere vista in strumenti visuali come gitg / gitx

    
risposta data 20.05.2014 - 11:57
fonte
0

Ho avuto lo stesso problema a pensarci fino a quando ho scoperto che Git numeri i suoi rami parentali. Detto questo, i commit di solito fastidiosi che vengono generati possono essere considerati nodi di riepilogo. E tutti i dettagli aggiuntivi possono essere banditi dalla vista, lasciando una singola cronologia lineare riassunta.

Controlla questo post del blog per dettagli ed esempi.

    
risposta data 16.06.2016 - 18:21
fonte
0

Il tuo gruppo si impegna nelle filiali: ogni ramo è un insieme di commit. Quando unisci le commit, stai mettendo un set di commit all'interno di un altro ramo, creando efficacemente una gerarchia di commit: ramo principale, caratteristiche, bug, esperimenti, lo chiami.

Idealmente, il tuo ramo principale è una successione di commit di unione. Se si guardano solo i primi genitori (i comandi git accettano tale opzione), si avrà la vista di alto livello della cronologia (si spera che si scriva un commit di fusione significativo, non quello generato automaticamente). Ma quando guardi i 2 °, 3 °, ecc. Genitori di un'unione nella tua storia, stai aprendo la scatola per vedere cosa c'è in una fusione. Qui hai i dettagli di quello che è successo.

    
risposta data 16.06.2016 - 22:54
fonte

Leggi altre domande sui tag