Domanda

Ho appena ricevuto intorno creando argomento rami per le caratteristiche non finiti del mio progetto, gestito da Git. Sono tutti molto self-contained in modo tale, che si diramano un argomento non si riferisce direttamente ad un altro ramo argomento. Tutti i rami, tuttavia, hanno un terreno comune, il ramo principale, che è il cuore del sistema, i rami argomento solo estendere le funzionalità nel ramo principale.

Se ho capito bene, se faccio qualcosa nel ramo principale che interessa (m) i rami argomento (per esempio, cambiare l'API utilizzata per la comunicazione tra il nucleo e le caratteristiche individuali) che il cambiamento non si propaga a i rami argomento automaticamente, in modo che i rami potrebbero essere fissati di conseguenza. Le modifiche dovrebbero essere fuse manualmente o ciliegio raccolte in altri rami.

ho capito che l'utilizzo di moduli potrebbe raggiungere questo obiettivo. I moduli portano tuttavia a troppo separazione tra il progetto principale e la caratteristica progetti aspiranti, soprattutto perché le caratteristiche non sono autosufficienti. Essi si basano sul core.

Quindi, quello che sto cercando è un qualche tipo di metodo per dire che alcuni file / directory sono unici per un certo ramo, tutto il resto viene da un ramo principale. In mancanza di un migliore analogia, parlando in termini di Photoshop, voglio Master per essere lo sfondo-layer, e ogni ramo argomento sarebbe un livello di immagine parzialmente trasparente su di esso, con alcuni contenuti unici.

È stato utile?

Soluzione

Questa nozione di "composizione" o "eredità di configurazione" non è supportato in Git, come spiegato nella domanda " flessibile vs statico ramificazione ". Solo unioni consentono di "comporre" l'esatto insieme di file che si desidera.

La funzione di aiuto modulo di identificare un insieme coerente di file di che deve avere il proprio ciclo di vita e di essere etichettato al proprio ritmo. Non è questo il caso delle vostre caratteristiche.

Il tuo approccio dovrebbe rimanere un "href="https://stackoverflow.com/questions/769786/vendor-branches-in-git/769941#769941"> Se le caratteristiche comportano un diverso insieme di file che quelli modificati nel ramo principale, che si fondono sarà banale. In caso contrario, è possibile seguire di Mateusza suggerimento , utilizzando un intermedio ramo per risolvere i conflitti e valutare il risultato di una tale unione, mantenendo al ramo della funzione intatta.

Altri suggerimenti

Diciamo che avere padrone ramo e mazzo di rami: feature1, Feature2, Caratteristiche3 ...

$ git checkout feature1
$ git branch master-with-feature1
$ git checkout master-with-feature1
$ git merge master

Ogni volta che si apporta alcuna modifica alla Master o feature1 è possibile verifica a master-con-feature1 e unirli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top