Git cherry-pick将案件合并冲突

时间:2017-03-20 06:56:54

标签: git merge

目前我有两个分支机构:

beta_001

beta_001有时候会从主人那里检出来。 为了使beta_001更新到目前为止掌握,推入master的提交也将被挑选到beta_001。所有事情都运行良好,直到beta_001合并回主人。

很多public abstract class Animal {} public abstract class Mammal extends Animal {} public abstract class Bird extends Animal {} public class Tiger extends Mammal {} public class Ostrich extends Bird {} public interface RunningObject {} public class RunningTiger extends Tiger implements RunningObject {} public class RunningOstrich extends Ostrich implements RunningObject {} public class RunningRobot extends NonAnimal implements RunningObject {} // This line is syntactically wrong public List<Animal & RunningObject> runningAnimals = new List<>(); runningAnimals.add(new RunningTiger()); // This should work runningAnimals.add(new RunningOstrich()); // This should work runningAnimals.add(new Tiger()); // This should give compile error runningAnimals.add(new Ostrich()); // This should give compile error runningAnimals.add(new RunningRobot()); // This should give compile error 冲突都是这样出现的:

both modified

或者

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

我猜这是因为樱桃选择而导致提交ID不同的一个变化,所以如何防止这种情况?

1 个答案:

答案 0 :(得分:0)

Cherry Pick将始终为新分支中选择的每个提交创建一个新ID,当我们尝试合并到提交的樱桃选择的分支时,这肯定会显示冲突。

如果您想要遵循当前的分支模型,您应该将master合并到beta_001 分支,以获得具有相同提交ID的主服务器的所有提交。这将添加合并提交,但避免您提到的冲突。

或者,您可以将分支模型更改为GitFlow,以便更好地进行分支管理。 https://datasift.github.io/gitflow/IntroducingGitFlow.html