Avendo lottato con SVN mi è stato detto che dovevocontrolla GIT, in quanto i rami sarebbero l'ideale per il flusso di lavoro che sto cercando di raggiungere. Mi sono confuso e penso di avere le basi del GIT in ordine ora.
Abbiamo fondamentalmente un quadro centrale che alcunidei nostri clienti usano, e voglio avere un trunk / master e usare i branch normalmente, per sviluppatori / sviluppatori, ma vorrei anche creare branch per ogni client, così posso lavorare sulle modifiche specifiche del client al codice . Questi rami sarebbero sempre un ramo e non finiranno mai per essere riuniti nel tronco / master.
La cosa principale che sto cercando di ottenere è che posso facilmente unire tutte le modifiche DAL trunk / master alle varie filiali del client e mi confondo se devo unirmi, o rebase.
Quindi la mia domanda ... Dovrei sempre usare rebase per questo, e se sì perché? (perché voglio mantenere il singolo commit in ogni ramo?)
modificare Così creo un repo, e in quel repository ho detto file.php con $x = 1
- Lo impegno a maestro
- Creo un ramo chiamato client1
- In client1 Aggiungo un nuovo file e commetto
- In client1 Io cambio file.php così
$x = 2
- In maestro Apporto una modifica a file.php ma è una nuova riga e $ x rimane
$x = 1
- In client1 Mi unisco maestro e ottenere un conflitto
$x
È perché sto aggiungendo una nuova riga a file.php adiacente a $x
che sta causando il conflitto?
risposte:
2 per risposta № 1Dovresti unire. Il rebasing prenderà tutte le modifiche sul master dato che il ramo si è separato dal master e ricreare loro in cima al ramo. Ciò significa che ogni commit sul master verrà duplicato per ogni ramo del cliente che stai monitorando.
L'unione è semanticamente ciò che stai facendo. Il grafico di commit risultante apparirà molto più bello e Git avrà un tempo più semplice per eseguire le fusioni poiché, dopo ogni unione, la cronologia del master diventerà parte della storia del ramo stesso - Git dovrà solo considerare i commit sul master dall'ultima fusione, invece di riconsiderare ogni commit su master.