Sono un po 'come un nuovo controllo di versione con GIT. Ho letto questo Guide e sto seguendo l'approccio di base mostrato nello schema HERE. Tuttavia, ho alcuni dubbi su come utilizzare i rami git per separare lo sviluppo di nuove funzionalità dal codice esistente.Come utilizzare correttamente git e rami
Ecco un esempio. Supponiamo che alla partenza, il mio repository contiene i seguenti due rami principali:
- branch master (contenente la versione di rilascio)
- Develop Branch (contenente nuove correzioni o caratteristiche di separarli dalle caratteristiche progettuali esistenti)
Quando ho bisogno di sviluppare nuove funzionalità o moduli, creo le diramazioni da Develop e avviano i nuovi progetti di codice. Ad esempio, creo tre nuovi rami per aggiungere funzionalità correlate a Sun
, Star
e SuperNova
. Ora, il mio archivio contiene cinque rami: ramo
- Maestro: Release 1.0.0
- Sviluppare ramo: Modifica dopo il rilascio 1.0.0
- NewModule_Sun ramo: aggiungi Sun al progetto (creare da sviluppare ramo)
- NewModule_Star ramo: aggiungi stella al progetto (creare da sviluppare ramo)
- NewModule_SuperNova ramo: aggiungi SuperNova al progetto (creazione di Develop ramo)
Per la versione 1.0.1, desidero includere i moduli Sun
e Star
, ma non SuperNova
. Così, ho unirli con Sviluppare e poi si fondono si sviluppano con il rilascio:
- Merge NewModule_Sun in Sviluppare
- Merge NewModule_Star in Sviluppare
- Unisci svilupparsi in Master (rilascio 1.0.1)
Il ramo Sviluppo deve essere mantenuto in modo permanente, ma i rami Sun
e Star
non sono più necessari. Essi vengono eliminati:
- Eliminare il ramo NewModule_Sun
- Eliminare il ramo NewModule_Star
Dopo questi cambiamenti mio repository contiene i seguenti tre rami:
- Maestro Branch: Release 1.0. 1
- Sviluppo diramazione: modifica dopo la versione 1.0.1
- NewModule_SuperNova branch: modifica dopo la release 1.0.0 (creata da sviluppare quando non è stato fuso con i rami stella/Sun)
==
In primo luogo, sto utilizzando correttamente i rami Git?
In secondo luogo, ho esaminato la cronologia del ramo Sviluppo finale e sembra che abbia perso alcune informazioni sullo NewModules
. È normale? E, è possibile trasferire tutte le informazioni sulla cronologia al ramo Sviluppo?
Grazie !!
Questo può aiutare. http://stackoverflow.com/questions/2613903/does-deleting-a-branch-in-git-remove-it-from-the-history – codef0rmer