5

如描述中所述。当合并冲突被自动解决时,我什至不想被提示解决合并冲突。

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

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

问题是,当实际上 git 已经正确合并到更改中时,系统会提示我执行额外的步骤。(我什至手动检查了文件,以确保不是我的合并工具在解决问题,并且确实冲突已经在文件中解决了)。

我尝试使用“--commit”参数来 git merge,但它没有效果。

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

有没有办法自动合并这些类型的冲突并在没有人工干预的情况下继续?

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

4

1 回答 1

1

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

如果你合并使用

$ git merge branchB --strategy=recursive -Xours

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

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

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

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

于 2012-06-29T07:47:33.620 回答