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