Sourcetree 列出为 Bitbucket 存储库修改的未修改文件

Sourcetree listing unmodified files as modified for Bitbucket repository

我刚刚重新安装了 OS 并将我的存储库复制回磁盘。 2 个比特桶和 1 个 Github。然后,我安装了 SourceTree 并添加了两个帐户(Github 和 Bitbucket)。最后,我使用 SourceTree 的 "Add Existing Local Repository" 功能添加了所有三个存储库。

现在,虽然我的 Github 存储库一切正常,但 SourceTree 将两个 Bitbucket 存储库中的每个文件都列为已修改,即使其中大部分文件尚未修改。在 SourceTree 的 "File Status" 部分中选择任何假定修改的文件会在右侧的 diff 中显示一个空框。

这是怎么回事?

编辑:DiffMerge 确认修改了 SourceTree 内容的文件与远程相同。

问题是我复制了我的存储库 to/from 一个不支持 unix 样式权限 (ExFat) 的驱动器。所以在往返之后,权限被重置为默认值(777),git 检测到这是一个差异。

777 包括执行权限,我的文件最初不存在(它们是 666 - read/write)。

解决方案是 运行 在我的存储库上执行以下命令,它删除了所有文件的额外执行权限:

find . -type f -exec chmod 666 {} +

以上命令仅针对文件,因为要遍历文件夹需要执行权限。