我一直在一个多从msysGit人帮助更好的解决方案,并已经提出了这种清洁/涂抹过滤器.过滤器使用Gnu文件和iconv命令来确定文件的类型,并将其转换为msysGit的内部UTF-8格式.
这种类型的清洁/涂抹过滤器为您提供了更大的灵活性.它应该允许Git在大多数情况下将混合格式文件视为UTF-8文本:diffs,merge,git-grep,以及golattributes属性,如eol-conversion,ident-replacement和内置diff模式.
上面概述的diff滤波器解决方案仅适用于差异,因此受到更多限制.
要设置此过滤器:
将以下内容添加到〜\ Git\etc\gitconfig:
[filter "mixedtext"]
clean = iconv -sc -f $(file -b --mime-encoding %f) -t utf-8
smudge = iconv -sc -f utf-8 -t $(file -b --mime-encoding %f)
required
Run Code Online (Sandbox Code Playgroud)在全局〜/ Git/etc/gitattributes或本地〜/ .gitattributes中添加一行来处理混合格式文本,例如:
*.txt filter=mixedtext
Run Code Online (Sandbox Code Playgroud)我在使用ANSI,UTF-16和UTF-8格式的sql文件的目录上使用了它.它到目前为止工作.除了任何意外,这看起来像20%的努力可以覆盖所有Windows文本格式问题的80%.
| 归档时间: |
|
| 查看次数: |
1865 次 |
| 最近记录: |