C++ git合并没有冲突意味着一切正常吗?

C++ git合并没有冲突意味着一切正常吗?,c++,c,git,conflict,merge-conflict-resolution,C++,C,Git,Conflict,Merge Conflict Resolution,有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的内置合并仅在文本基

有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不懂编程语言。它只知道可以毫无歧义地应用更改。git负责调试代码吗?我认为git只是关心Diff?1001在合并后推动之前编译代码的原因。