如何设置Git Mergetool仅处理.py文件,保留本地.png文件?
解决合并时.png文件仍触发mergetool的问题
1. 先标记已处理的.png文件为冲突解决
你已经用git checkout --ours <xxx.png>或git checkout --theirs <xxx.png>选好了要保留的版本,但Git还没把这些文件从冲突列表中移除,所以mergetool依然会识别它们为未解决的冲突。执行以下命令告诉Git冲突已处理:
- 单个文件:
git add <xxx.png> - 批量处理所有.png:
git add *.png
2. 配置Git实现.png文件自动合并(避免后续重复操作)
如果不想每次合并都手动处理.png,可以给Git设置专属的合并规则,让它自动选择本地/远程版本,不再触发mergetool:
- 在项目根目录执行以下配置命令:
# 自动保留本地分支的.png版本,要保留远程版本就把--ours换成--theirs git config --local merge.driver.png.cmd "git checkout --ours %A" git config --local merge.driver.png.name "Auto keep our .png files" git config --local merge.driver.png.trustExitCode true
- 新建或修改项目根目录的
.gitattributes文件,添加一行:
*.png merge=png
这行是告诉Git,所有.png文件使用我们刚才配置的png合并驱动处理。
排查:如果标记解决后仍弹出
运行git status检查这些.png文件的状态,如果还显示在"unmerged paths"或"both modified"列表里,说明之前的git add没生效,重新执行git add即可。
内容的提问来源于stack exchange,提问作者Nelson
相关产品推荐
相关产品推荐

