对于合并,我用这个来“保留我的”
git merge -X ours foo
这个代表“保住他们的”
git merge -X theirs foo
但是在我最近的合并中,最好是保留两边。Git是否有一个“策略”来避免手动编辑文件?
axzmvihb1#
没有解决这些冲突的“合并策略”。但是,如果你真的想要这样的冲突:
<<<< ours Foo ========= Bar >>>> theirs
决心
Foo Bar
然后您可以配置'merge driver'。从gitattributes手册页:联合对文本文件运行三向文件级合并,但从两个版本中提取行,而不是留下冲突标记。这往往会使结果文件中添加的行以随机顺序出现,用户应验证结果。如果不了解其含义,请不要使用此方法。在.gitattributes中添加一行代码以使用以下命令:
*.whatever merge=union
wydwbb8l2#
这个怎么样?grep -v -e'^<<<<<<<' -e '^>>>>>>>' -e'=======' filename.txt > filename.tmpmv filename.tmp filename.txt
grep -v -e'^<<<<<<<' -e '^>>>>>>>' -e'=======' filename.txt > filename.tmp
mv filename.tmp filename.txt
xienkqul3#
有时候一大块代码需要冲突解决。当我想保留 both 时,我这样做:1.复制整个代码块。因此,有两个示例。1.删除第一个示例上的HEAD或 ours 部分。1.在第二个示例上删除要合并的部分或 * 它们的 * 部分。
HEAD
3条答案
按热度按时间axzmvihb1#
没有解决这些冲突的“合并策略”。
但是,如果你真的想要这样的冲突:
决心
然后您可以配置'merge driver'。从gitattributes手册页:
联合
对文本文件运行三向文件级合并,但从两个版本中提取行,而不是留下冲突标记。这往往会使结果文件中添加的行以随机顺序出现,用户应验证结果。如果不了解其含义,请不要使用此方法。
在.gitattributes中添加一行代码以使用以下命令:
wydwbb8l2#
这个怎么样?
grep -v -e'^<<<<<<<' -e '^>>>>>>>' -e'=======' filename.txt > filename.tmp
mv filename.tmp filename.txt
xienkqul3#
有时候一大块代码需要冲突解决。当我想保留 both 时,我这样做:
1.复制整个代码块。因此,有两个示例。
1.删除第一个示例上的
HEAD
或 ours 部分。1.在第二个示例上删除要合并的部分或 * 它们的 * 部分。