如何针对当前所有Git合并冲突使用union合并驱动?
让Git对所有冲突使用Union合并驱动的方法
如果你想让Git在合并时对所有文件默认使用union驱动,可按以下步骤操作:
1. 定义Union合并驱动
首先需要让Git识别union驱动的逻辑,你可以在全局配置文件(~/.gitconfig)或当前仓库的.git/config文件中添加以下配置:
[merge "union"] name = Union merge driver driver = cat %A %B > %A
这个配置的作用是,把当前分支的文件(%A)和待合并分支的文件(%B)内容拼接后,覆盖当前分支的文件,以此完成无冲突的合并。
2. 设置所有文件默认使用该驱动
仅当前仓库生效
在当前仓库根目录创建或修改.gitattributes文件,添加一行规则:
* merge=union
这会让当前仓库下所有文件在合并时自动使用union驱动。
所有仓库全局生效
如果希望所有Git仓库都默认应用这个规则:
- 在用户主目录下创建全局属性文件,比如
~/.gitattributes_global - 在该文件中添加同样的规则:
* merge=union
- 执行命令让Git识别这个全局属性文件:
git config --global core.attributesfile ~/.gitattributes_global
注意事项
- Union驱动是简单的内容拼接,适合日志、简单配置清单这类允许双方内容合并的场景,但对代码文件可能导致语法错误,使用前请确认场景适配。
- 若之后需要对特定文件恢复默认合并逻辑,可在
.gitattributes中单独指定,例如:
*.py merge=default
内容的提问来源于stack exchange,提问作者Kosmas Xenakis
相关产品推荐
相关产品推荐

