2017-03-20 77 views
2

目前我有兩個分支:Git的摘櫻桃將區分合並衝突

beta_001

beta_001從主有時會前簽出。 爲了使beta_001更新至master,在master中推送的提交也將被選中爲beta_001。所有的事情都很好,直到beta_001被合併回主人的那一天。

很多both modified衝突apperenced這樣的:

++<<<<<<< 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 

或本

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

我想這是區別一個變化承諾因摘櫻桃ID的情況下,所以如何防止這個?

+0

是您的分支beta_001本地還是共享? – nak

+0

@nak它是共享的。 – reavenisadesk

+0

兩個分支之間有什麼區別?我的意思是他們用的是什麼? – nak

回答

0

Cherry Pick將始終爲新分支中選取的每個提交創建一個新ID,當我們嘗試合併分支提交櫻桃時,這肯定會顯示衝突。

如果你想跟隨當前分支模型,您應該合併掌握到beta_001分支獲得來自主用相同的提交ID的所有承諾。這將添加合併提交,但避免您提到的衝突。

或者,您可以將分支模型更改爲GitFlow以實現更好的分支管理。 https://datasift.github.io/gitflow/IntroducingGitFlow.html

+0

有什麼區別?將主人合併到beta_001中仍然存在衝突...可能是我誤解了?你能解釋更多嗎? – reavenisadesk

+0

**不要從主人挑選**。只需將主人合併到beta_001。如果有衝突(其他人更改了您在beta_001中更改過的同一行),則會顯示。它不會顯示你在問題中提到的那種衝突 – nak