问题:git diff认为文件是二进制文件:
$ git diff e7714 foo.txt
diff --git a/foo.txt b/foo.txt
index 14e06f9..9f00c64 100644
Binary files a/foo.txt and b/foo.txt differ
我知道它与编码有关。正在运行dos2unix
修复它。
$ dos2unix.exe foo.txt
dos2unix: converting UTF-16LE file foo.txt to UTF-8 Unix format...
很好,除非在提交和推送之前忘记运行dos2unix
,否则版本之间的差异不会提供信息。转换为非UTF-8编码是由于人们用来编辑文件的某些工具(坏工具)。
SVN有预先提交钩子来处理代码格式化和其他样式问题。这样的东西可用于git吗?例如,我想说名为*.txt
的文件必须是UTF-8,否则拒绝提交(或拒绝推送,如果不能提交提交级拒绝)。