Git说自动合并失败,但是当我检查文件或运行mergetool时,没有冲突它们被正确解析

Cod*_*der 5 versioning git version-control merge

如描述中所述.我不想在自动解决时解除合并冲突的提示.

我的场景是我将一行包含固定文本字符串的行添加到一个分支上的文本文件中,在同一个分支上执行其他一些提交,然后在另一个分支上挑选添加固定文本的更改,然后执行合并另一个分支.

我这样做是为了测试,因为在我的日常生活中经常会遇到冲突,但是当我使用我的合并工具时,它说没有冲突,所以我只是关闭它并手动提交.

问题是,当实际上git已经正确地合并在一起时,我被提示进行额外的步骤.(我甚至手动检查了文件,以确保它不是我的合并工具执行解决方案,实际上冲突已在文件中解决).

我尝试使用"--commit"参数进行git merge但它没有任何效果.

似乎git无法根据消息自动合并更改,但实际上它实际上合并了文件.

有没有办法自动合并这些类型的冲突,并继续无需人工干预?

我正在使用git版本1.7.10.msysgit.1

Att*_*emi 1

这可能无法回答您的问题,但如果您知道要合并的内容,则可以通过为其提供策略(和选项),从而根本不需要解决冲突,具体取决于要合并的内容。非快进合并通常是通过递归策略完成的,这很好,但你也可以给它一个选项。

如果您使用合并

$ git merge branchB --strategy=recursive -Xours
Run Code Online (Sandbox Code Playgroud)

然后,您通常遇到的所有冲突都会通过您的台词自动解决。当您知道自己不应该发生冲突但无论如何都会发生冲突时,这可能适合您的情况。就像我说的,这会自动解决与您的版本的冲突,因此仅当您事先知道您的版本是所需的版本时才使用它。

一个更安全的选项是自动修复与空格相关的任何冲突ignore-all-space。所以:

$ git merge branchB --strategy=recursive -Xignore-all-space
Run Code Online (Sandbox Code Playgroud)

我推荐这个,因为它非常安全,它可能对您的情况有所帮助,并且它节省了很多要合并文件将整个内容拆分为本地和远程的情况,这将使解决冲突变得非常困难。