我在合并时使用此选项以“保留我的内容”
git merge -X ours foo
这是为了“保留他们自己”的
git merge -X theirs foo
然而,在我的最新合并中,保留双方看起来最好。Git是否有相应的“策略”可避免手动编辑文件?
解决这些冲突没有“合并策略”。
然而,如果您真的想要解决像这样的冲突:
<<<< ours
Foo
=========
Bar
>>>> theirs
决定采取行动Foo
Bar
那么您可以配置'合并驱动程序'。从gitattributes手册中得知:
union
对于文本文件运行三方面的文件级合并,但是取双方版本的行,而不是留下冲突标记。这往往会在生成的文件中以随机顺序留下添加的行,用户应验证结果。如果您不理解情况,请不要使用此功能。
添加一行到.gitattributes中以使用此功能:
*.whatever merge=union
这段命令的作用是从filename.txt
文件中排除所有以特定字符串开头或包含特定字符串的行,并将结果存储到名为filename.tmp
的临时文件中。然后,使用mv
命令将新文件重命名为原始文件名filename.txt
。
有时候需要解决大量代码的冲突。当我想要保留两者时,我会这样做:
HEAD
或ours部分。
.gitattributes
不属于‘选项’的范畴),以便专门用于您想以这种方式合并的冲突?这些冲突非常普遍,有一个一行命令解决它们的方法会很方便(在同一文件中添加多个导入/函数/属性且顺序不重要)。 - Damon