繁体   English   中英

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

[英]Git says Automatic merge failed but when i check the file or run the mergetool there are no conflicts they were resolved correctly

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

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

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

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

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

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

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

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

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

如果你合并使用

$ git merge branchB --strategy=recursive -Xours

然后,您通常会遇到的每个冲突都会自动用您的线路解决。 这可能适合你的情况,当你知道你不应该得到冲突,但无论如何都要得到它们。 就像我说的那样,这会自动解决与你的版本的冲突,所以只有当你事先知道你的版本是需要的时候才使用它。

更自然地修复与空白相关的任何冲突的更安全的选项是ignore-all-space 所以:

$ git merge branchB --strategy=recursive -Xignore-all-space

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM