GitHub 桌面:"This file is empty"

GitHub Desktop: "This file is empty"

文件 naaclhlt2016.tex 在客户端或存储库中不为空,但 GitHub 桌面显示 "This file is empty"。对此有何解释?

文件 naaclhlt2016.tex 存在于 GitHub 存储库中:

git status:

当我尝试同步时它产生了冲突:

经过讨论,如果tex文件的变化只是元数据方面的变化(而不是实际文件内容的变化,经过latex重新编译),GitHub桌面可能无法显示任何变化。

由于即使 git 状态列出了该文件,它也没有检测到任何变化,因此它回退到 "this file is empty" 消息。

autoCRLF 设置(例如 ~/.gitconfig 中)与文本文件中换行符的存储不匹配时,我发现了类似的结果。我有 .php 个文件下载到一台 (Windows) 机器上,压缩并解压到 Apache 文件夹中,然后我将它们复制到克隆的存储库中,它有时会抱怨每个文件都已更改。存储在 GitHub 上的文件似乎已存储在 CRLF 上(它们更大)。

我无法获取 GitHub 桌面来处理我修改的文件。我已经尝试使用 autoCRLF=trueautoCRLF=inputautoCRLF=false 进行全新克隆,但 GitHub Desktop 报告文件为空或每一行都已更改,具体取决于 autoCRLF设置。

我相信这完全是因为它们与文件中的 CRLF 一起存储在 GitHub 上,并且 GitHub 桌面似乎假设 autoCRLF 管理(仅)选中的out 文件,并且不会将 CRLF 在 GitHub 上进行比较,即使 autoCRLF=false 也是如此。它们是 byte-for-byte 个相同的文件,但它们是 LF-only,它要么抱怨每一行都已更改,要么文件为空。

如果我对其中一个文件执行 git diff,在本例中为 feed.php,我会看到: warning: CRLF will be replaced by LF in API/events/feed.php. The file will have its original line endings in your working directory.

除了@VonC 回复。

关闭此警报

Git 桌面

  1. unselect所有更改的文件

  2. select 仅“此文件为空”文件

  3. 尝试提交

  4. Git会显示提交错误,说你不能那样做。关闭模式后,Git 应该从更改列表中删除文件。