如何为特定扩展名文件设置Git合并策略,避免合并/恢复Stash损坏文件?
Git合并/Stash恢复时避免损坏专有二进制文件的方案
关键配置:让Git强制对指定二进制文件要求手动处理
1. 通过.gitattributes标记文件为不可自动合并
在仓库根目录创建或编辑.gitattributes文件,添加对应规则(替换为你的二进制文件后缀或精确文件名):
# 示例:匹配所有.bin后缀的专有二进制文件 *.bin binary merge=none
binary:明确告诉Git这是二进制文件,禁用文本模式的行尾转换、差异分析等操作,从根源避免文件损坏merge=none:Git遇到该文件的合并场景时,不会尝试自动合并,直接标记为冲突状态,必须手动处理
2. Stash恢复时强制手动处理
Stash恢复操作默认可能自动合并,要避免这种情况,执行恢复时添加--no-index参数:
git stash apply --no-index
这个命令会跳过自动合并逻辑,若本地文件与Stash中的版本存在差异,直接标记为冲突,必须手动确认处理。
注意事项
- 务必将
.gitattributes提交到仓库,确保所有协作成员的Git环境都应用这个规则 - 配置后先做小范围测试:修改二进制文件、创建分支合并、执行Stash/恢复,验证是否触发预期的手动处理流程
内容的提问来源于stack exchange,提问作者schnedan
相关产品推荐
相关产品推荐

