2017-03-20 3 views
2

Derzeit habe ich zwei Zweige:Git cherry-pick Konflikt fusionieren case

Master

beta_001

beta_001 wird vor manchmal vom Master ausgecheckt. Um die Beta_001-Aktualisierung auf den neuesten Stand zu bringen, werden Commits, die in den Master gepusht werden, ebenfalls nach Beta_001 ausgewählt. Alle Dinge funktionierten bis zum Tag, an dem beta_001 wieder mit dem Master zusammengeführt wurde.

viele both modified Konflikt apperenced wie folgt aus:

++<<<<<<< HEAD 
+  <permission 
+   android:name="com.xxx.permission.REDIRECT_MESSAGE" 
+   android:protectionLevel="normal"/> 
+  <permission 
++======= 
+ <permission 
+  android:name="com.xxx.permission.REDIRECT_MESSAGE" 
+  android:protectionLevel="normal"/> 
+ <permission 
++>>>>>>> origen/beta_001 

oder diese

++<<<<<<< HEAD 
++======= 
+ 
+  <string name="xxx">xxxx</string> 
++>>>>>>> origen/beta_001 

Ich denke, dies ist der Fall einer Änderung mit Unterschied ist ids begehen aufgrund cherry-pick, so wie man verhindere das?

+0

ist Ihre Niederlassung beta_001 lokal oder geteilt? – nak

+0

@nak Es ist geteilt. – reavenisadesk

+0

Was ist der Unterschied zwischen den beiden Filialen? Ich meine, wofür verwenden sie? – nak

Antwort

0

Cherry Pick erstellt immer eine neue ID für jedes Commit, das im neuen Zweig ausgewählt wurde. Dies wird definitiv Konflikte anzeigen, wenn wir versuchen, den Zweig zu verbinden, aus dem die Commits ausgewählt wurden.

Wenn Sie Ihrem aktuellen Verzweigungsmodell folgen möchten, sollten Sie Master in beta_001 Verzweigung zusammenführen, um alle Commits vom Master mit der gleichen Commit-ID zu erhalten. Dadurch wird ein Zusammenführungs-Commit hinzugefügt, die von Ihnen erwähnten Konflikte werden jedoch vermieden.

Alternativ können Sie Ihr Verzweigungsmodell für eine bessere Filialverwaltung in GitFlow ändern. https://datasift.github.io/gitflow/IntroducingGitFlow.html

+0

Was ist der Unterschied? Merge Master in beta_001 hat immer noch Konflikte ... Kann ich falsch verstanden werden? Könntest du mehr erklären? – reavenisadesk

+0

** Nicht vom Meister meißeln **. Mischen Sie den Master einfach mit beta_001. Wenn es Konflikte gibt (wo jemand anders dieselbe Zeile geändert hat, die Sie in beta_001 geändert haben), wird dies angezeigt. Es zeigt nicht die Art von Konflikten an, die Sie in den Fragen erwähnt haben – nak