2016-05-16 88 views
8

Spesso ci si dirama dal master per lavorare su rami di feature di grandi dimensioni. Queste ramificazioni di funzionalità vengono solitamente lavorate per giorni o addirittura settimane prima di essere unite al master (tanto più che le best practice dettano che dobbiamo unirle il più frequentemente possibile, in pratica potrebbe essere diverso).git pull --rebase master di origine sembra rebase dall'inizio ogni volta

Come tale, proviamo il più possibile a git pull --rebase origin master per rimanere aggiornati con il master. Tuttavia, ci piacerebbe tanto in tanto incontriamo la situazione in cui ad es .:

1) si diramano da master ramo in

2) apportare modifiche in e il commit delle modifiche.

3) git pull --rebase origin master per mettere i commit in cima al master. Correggere eventuali conflitti e git add . + git rebase --continue

4) Apportare più modifiche in e confermare le modifiche.

5) git pull --rebase origin master di nuovo.

Tuttavia, nella fase 5), il processo richiede la correzione degli stessi conflitti dal passaggio 3). Quale può essere noioso.

È questo il flusso corretto di best practice e se no, che altro possiamo fare per rendere il processo più efficiente?

risposta

2

Se vi trovate a fissare lo stesso conflitto, provare e attivare git rerere ("ri uso re filo re soluzione").

git config --global rerere.enabled true 

Questo registrerà per te la risoluzione del conflitto.

saperne di più visita "Fix conflicts only once with git rerere" da Christophe Porteneuve

se si preferisce rerere ai file auto-stage è risolto (io lo faccio), si può chiedere a: è sufficiente modificare la configurazione in questo modo:

git config --global rerere.autoupdate true 
+0

Questo è un ottimo suggerimento! Sicuramente lo proverò al mio prossimo rebase. Anche questo sembra un buon riferimento [https://git-scm.com/docs/git-rerere](https://git-scm.com/docs/git-rerere) –

+0

@WeiJiaChen concordo: https://git-scm.com/docs/git-rerere è stato il primo link che ho menzionato nella mia risposta sotto 'git rerere'. – VonC

+0

Trovato! La mia supervisione :) Grazie mille @VonC –

1

È inoltre possibile git merge ramo principale nel vostro ramo funzione per mantenere sempre le ultime modifiche e facilitare la transizione da padroneggiare.

Per un ramo di lunga durata (che non dovresti fare, ma hey, la realtà non è perfetta: D) Di solito preferisco questa opzione per evitare di riscrivere l'intera cronologia del ramo, che fa lo --rebase.