我正在尝试使用GIT来跟踪对一个相当大的XML文件(大约3MB)的更改。文件在UTF-8中,CRLF行结束(我在Windows 10中工作)。但出于某种原因,GIT一直认为它是二进制文件,没有显示任何差异。或者就是无法检测到变化。
Sourcetree中的Diff显示消息“未检测到此文件中的任何更改,或者它是一个二进制文件”
我试图显式地在.gitattributes,中设置属性,但这似乎不是原因:
*.xml crlf diff git check-attr --all -- sorkin.xml
sorkin.xml: diff: set
sorkin.xml: crlf: set 我发现当我将大文件切成三个较小的部分(小于1MB)时,GIT正确地显示了它们的更改。
在计算差异时,是否存在GIT对文件大小的限制?
发布于 2020-08-30 11:02:54
问题不是GIT选项,而是SourceTree设置工具/选项/Diff。默认情况下,它为1024 of的文本文件设置了内部Diff视图大小限制。
我把它设置为更高的值,它解决了我的问题。
我错误地解释了SourceTree错误消息“未检测到该文件中的任何更改,或者它是一个二进制文件”。但是当我创建一个长度分别为1048576和1048577字节的文本文件并提交它们时,我发现git命令行可以工作,而Atlassian忽略了对较大文件的更改。
对git:git diff commit_hash 1048577.txt而不是git diff 1048577.txt使用适当的语法是很重要的,因为最后一个命令显示了头和当前更改之间的差异,这是我误解问题的第二个因素。
https://stackoverflow.com/questions/63646679
复制相似问题