git pull --rebase Origin Master erscheint jedes Mal von Anfang an neu

8

Wir verzweigen häufig vom Master, um an großen Feature-Zweigen 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).

Als solche versuchen wir so viel wie möglich zu git pull --rebase origin master , um mit dem Master aktualisiert zu bleiben. Gelegentlich treffen wir jedoch auf Situationen, in denen z. B.:

1) Verzweigen Sie sich von master branch nach feature/new-branch

2) Nehmen Sie Änderungen in feature/new-branch vor und übernehmen Sie die Änderungen.

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

4) Nehmen Sie weitere Änderungen in feature/new-branch vor und übernehmen Sie die Änderungen.

5) git pull --rebase origin master erneut.

Im Schritt 5) müssen wir jedoch 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 gestalten?

    
Wei Jia Chen 16.05.2016, 03:06
quelle

2 Antworten

2

Wenn Sie feststellen, dass Sie den gleichen Konflikt behoben haben, versuchen Sie, git rerere zu aktivieren (" re Verwenden Sie die re Lösung re ).

%Vor%

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

Weitere Informationen finden Sie unter " Fixe Konflikte nur einmal mit git rerere "von Christopher Porteneuve

  

Wenn Sie es vorziehen, Dateien automatisch zu staffeln, die es gelöst hat (ich tue es), können Sie es fragen: Sie müssen nur Ihre Konfiguration wie folgt anpassen:

%Vor%     
VonC 16.05.2016, 12:07
quelle
1

Sie können auch git merge master in Ihren Feature-Zweig verzweigen, um die letzten Änderungen zu erhalten und den Übergang zum Master zu erleichtern.

Für eine lange laufende Verzweigung (was Sie nicht tun sollten, aber hey, die Realität ist nicht perfekt: D) ​​Ich bevorzuge normalerweise diese Option, um zu vermeiden, die gesamte Zweighistorie neu zu schreiben, was die --rebase tut.

    
Hugo Ferreira 16.05.2016 12:19
quelle