没有冲突是否意味着一切正常?



有5个文件,a.h, aImpl.c, b.h, bImpl.c, main.c包括两个头文件

Branch A:
    //File a.h
    +extern int x;
    //File aImpl.C
    +int x=1
Branch B:
    //File b.h
    +extern int x;
    //File bImpl.C
    +int x=2

没有文件冲突,但实际上全局变量冲突。git merge将如何处理这种情况?

Git的内置合并只在文本基础上工作。语法或语义错误与Git一点关系都没有。简而言之,合并将成功,而代码将失败。这是由你而不是Git来处理的。

你可以使用Git的钩子获得一些帮助,例如,你可以在一些测试通过之前禁用提交。然而,这样的钩子留给每个用户随意使用或绕过。编写好的钩子也有些困难,因为提交是从索引(暂存在区)的内容中进行的,而不是从工作树的内容中进行的。

最新更新