Ale*_*kin 8 git atlassian-sourcetree
我正在尝试使用 GIT 来跟踪对相当大的 XML 文件(大约 3 Mb)的更改。该文件采用 UTF-8 格式,以 CRLF 行结尾(我在 Windows 10 中工作)。但由于某种原因,GIT 一直认为它是二进制文件,并且不显示任何差异。或者只是无法检测到变化。
Sourcetree 中的差异显示消息“未检测到此文件中的任何更改,或者它是一个二进制文件”
我尝试在.gitattributes中显式设置属性,但似乎这不是原因:
*.xml crlf diff
Run Code Online (Sandbox Code Playgroud)
git check-attr --all -- sorkin.xml
sorkin.xml: diff: set
sorkin.xml: crlf: set
Run Code Online (Sandbox Code Playgroud)
我发现当我将大文件切成三个较小的部分(小于 1 Mb)时,GIT 会正确显示它们的更改。
计算 diff 时,GIT 对文件大小有限制吗?
Ale*_*kin 20
问题不是 GIT 选项,而是 SourceTree 设置 Tools/Options/Diff。默认情况下,它具有内部差异视图设置 - 文本文件大小限制为 1024Kb。
我将其设置为更高的值,它解决了我的问题。
我错误地解释了 SourceTree 错误消息“未检测到此文件中的任何更改,或者它是一个二进制文件”。但是当我创建长度为 1048576 和 1048577 字节的文本文件并提交它们时,我发现 git diff 命令行有效,而 Atlassian SourceTree 忽略了较大文件的更改。
使用 git diff:
git diff commit_hash 1048577.txt而不是正确的语法非常重要git diff 1048577.txt,因为最后一个命令显示了 HEAD 和当前更改之间的差异,这是我误解问题的第二个因素。
| 归档时间: |
|
| 查看次数: |
5896 次 |
| 最近记录: |