相关疑难解决方法(0)

git合并冲突究竟是如何发生的?

我已经创建了一个git存储库并添加了一个文本文件.这是100%用于学习目的.

  1. 我在文本文件中添加了"1"并将其提交给master.

  2. 从master创建一个新分支并附加"2".

  3. 最后,从master创建了一个分支并附加了"3".

您能解释一下这个或任何其他场景中可能发生的冲突吗?

git github git-merge merge-conflict-resolution git-branch

39
推荐指数
2
解决办法
2万
查看次数

为什么当彼此相邻的行发生变化时,git会产生合并冲突?

假设我有一个包含此内容的文件master:

Line 1
Line 2
Line 3
Line 4
Run Code Online (Sandbox Code Playgroud)

现在说我创建并签出一个名为的新分支test.在这个分支中,我将文件更改为:

Line 1
Line 2
Line 3 Modified
Line 4
Run Code Online (Sandbox Code Playgroud)

我提交了这个并切换回来master.在master中我将文件更改为:

Line 1
Line 2
Line 3
Line 4 Modified
Run Code Online (Sandbox Code Playgroud)

我承诺 现在,如果我合并分支testmaster,我遇到冲突.

为什么不能使用共同的祖先git自动解决这个问题?如果我告诉git使用BeyondCompare作为difftool编辑冲突,BeyondCompare甚至不会告诉用户自动解决这个问题,因为这不是真正的冲突.有没有办法让git自动解决这些问题?我已经尝试过recursiveresolve合并策略,但都没有.

这是我们公司的一个问题,因为有些文件中有多个开发人员在近距离内更换线路,这会导致许多不必要的冲突.

git merge

7
推荐指数
2
解决办法
968
查看次数

Git - 即使没有冲突,如何强制手动合并

这是一个多年来被问过很多次的问题。我找到了很多答案,尤其是这个:

Git - 如何在所选文件上强制合并冲突和手动合并(@Dan Moulding)

此页面包含如何设置始终返回失败的合并驱动程序的详细指南,从而使手动合并成为可能。我试图为 Windows 调整该解决方案:

  1. 我将以下内容添加到我的%homepath%\.gitconfig

    [merge "verify"] name = merge and verify driver driver = %homepath%\\merge-and-verify-driver.bat %A %O %B

  2. 我把驱动改成了

    cmd /K "echo Working > merge.log & git merge-file %1% %2% %3% & exit 1"

    echo Working > merge.log添加来检查驱动程序是否被调用)。

  3. 并且,在 repo 的根目录下,创建了一个.gitattributes包含以下行的文件:

    *.txt merge=verify

不幸的是,它不起作用。我试图合并一个文件feature.txt,唉,合并成功完成。似乎根本没有调用驱动程序,因为没有创建 merge.log 文件。

我做错了什么吗?任何强制手动合并问题的解决方案都是最受欢迎的。

git merge

7
推荐指数
2
解决办法
2728
查看次数

进行git合并时,主要分支是什么?

鉴于我目前的分支是分支A.

分支A包含:

line 1 -- "i love you Foo"
Run Code Online (Sandbox Code Playgroud)

分支B包含:

line 1 -- "i love you Bar"
Run Code Online (Sandbox Code Playgroud)

如果我这样做:

git merge Branch B 
Run Code Online (Sandbox Code Playgroud)

我会得到什么?

git

2
推荐指数
2
解决办法
1360
查看次数