2016-05-16 16 views
8

Wir verzweigen häufig vom Master, um an großen Feature Branches zu arbeiten. Diese Feature-Zweige werden normalerweise Tage oder sogar Wochen bearbeitet, bevor sie mit Master zusammengeführt werden (so viel wie beste Praxis vorschreibt, dass wir so oft wie möglich zusammenführen müssen, praktisch könnte es anders sein).git pull --rebase Origin Master scheint von Anfang an jedes Mal zu rebasen

Als solche versuchen wir so viel wie möglich zu git pull --rebase origin master, um mit Master aktualisiert zu bleiben. Allerdings würden wir gelegentlich die Situation kommen, z.B .:

1) Verzweigen von master Zweig

2) Nehmen Sie Änderungen in und Änderungen.

3) git pull --rebase origin master Commits auf Master setzen. Beheben Sie alle Konflikte und git add . + git rebase --continue

4) Machen Sie weitere Änderungen in und committen Sie Änderungen.

5) git pull --rebase origin master wieder.

Allerdings müssen wir in Schritt 5) die gleichen Konflikte aus Schritt 3) beheben. Was kann langweilig sein.

Ist dies der richtige Best-Practice-Git-Fluss und wenn nicht, was können wir noch tun, um den Prozess effizienter zu machen?

Antwort

2

Wenn Sie sich die Festsetzung der gleichen Konflikt finden, versuchen Sie und aktivieren git rerere ("re Verwendung re corded re Lösung").

git config --global rerere.enabled true 

Das wird für Sie diese Konfliktlösung aufzeichnen.

Mehr unter „Fix conflicts only once with git rerere“ von Christophe Porteneuve

, wenn Sie Auto-Bühne Dateien rerere bevorzugen es gelöst (ich), können Sie es fragen: Sie müssen nur Ihre Konfiguration optimieren wie so:

git config --global rerere.autoupdate true 
+0

Dies ist ein großer Vorschlag! Ich werde es definitiv bei meiner nächsten Rebase ausprobieren. Dies scheint auch eine gute Referenz [https://git-scm.com/docs/git-rerere](https://git-scm.com/docs/git-rerere) –

+0

@WeiJiaChen Ich stimme zu: https://git-scm.com/docs/git-rerere war der erste Link, den ich in meiner Antwort unter "git rerere" erwähnt habe. – VonC

+0

Verstanden! Mein Versehen :) Vielen Dank @VonC –

1

Sie können auch git merge der Master-Zweig in der Feature-Zweig zu halten um die neuesten Änderungen bekommen und den Übergang zu erleichtern zu meistern.

Für einen langen laufenden Zweig (was Sie nicht tun sollten, aber hey, die Realität ist nicht perfekt: D) ​​Ich bevorzuge diese Option, um das Umschreiben der gesamten Zweighistorie zu vermeiden, was die --rebase tut.