git合并是如何工作的?

时间:2012-12-19 13:06:43

标签: git

我想了解git在与两个不同的代码合并时所寻找的内容。

何时删除代码或插入

所以,如果我有代码

Foo.java(这是我的代码)

class Foo {
     void hello(){}
     void bye(){}
     void gone(){}
}

Foo.java(正在获取和合并的代码)

class Foo{
     void hello(){}
     void wait(){}
     void bye(){}
}

如果我合并上面的代码,那么

  1. 是否删除了删除和再见方法?
  2. 如果在hello方法中有更改,是否删除了我的'hello'并用提取的hello重写它?

1 个答案:

答案 0 :(得分:3)

首先,它不会删除再见,它会在它上面插入wait()。它不会删除gone(),除非它存在于前一版本中并且在连续修订版本中被删除而没有在它们之间触及它。如果你自己添加了gone()(即git没有收到任何应该被删除的迹象),那么将在合并文件的底部找到gone()。像这样:

class Foo{
     void hello(){}
     void wait(){}
     void bye(){}
     void gone(){}
}

其次,它不会删除你的hello,它只会将所做的更改放入已经存在的hello()中。

请记住,如果它无法合并,则会产生冲突,您必须自己合并。它不会删除/添加没有人为输入而没有意义的东西。