2

我有一个 FAT 外部磁盘,用于存储我的 GIT 存储库并在 Mac 和 Windows 上使用该存储库。由于 FAT 没有权限,当我将文件从本地磁盘复制到外部 FAT 磁盘时,由于文件模式更改,我有 git diffs。我已经使用 git 选项解决了这个问题

git config core.fileMode false

现在在 Mac 上我没有 git diff,即 git diff 是干净的。但是当我在 Windows 上执行 git diff 时,我看到了这个:

在此处输入图像描述

我记得我在更新 Xcode 后使用 Xcode 6 链接我的项目时遇到了问题。我的框架,与您在上图中看到的框架相同,在 Xcode 中但未被识别和链接。所以我删除了它们,重新添加并解决了问题。我想这就是我有差异的原因。这是一个差异示例:

曾是: 在此处输入图像描述

变得: 在此处输入图像描述

为什么我在 Mac 上看不到这个差异?为什么我在 iOS 框架文件中有差异以及差异的含义(XSym、数字 [0022]、哈希码)?

编辑:似乎它以某种方式与 FAT 上的符号链接相关联:http ://www.tucuxi.org/os-x-vfat/ 但我不确定如何解决我在 Windows 和 Mac 上同时使用相同存储库的问题。

4

1 回答 1

3

这是对问题的解释:http ://www.tucuxi.org/os-x-vfat/总之,FAT 不了解符号链接,因此当您将符号链接复制到 FAT 时,试图通过添加内容来模仿提到的是上图中的差异。

这是解决方案: https ://www.kernel.org/pub/software/scm/git/docs/git-config.html总之,git core.symlinksconfig 应该设置为 false,以便符号链接被签出为小包含链接文本的纯文件:

git config core.symlinks false

因此,Mac 上的差异也会出现。顺便说一句,框架文件中的差异使它们无法在 Xcode 上工作。

因此,通常在 FAT 上使用 GIT,我建议为 GIT 设置此全局设置:

git config --global core.fileMode false
git config --global core.symlink false
git config --global core.ignorecase true

检查它是否正确设置使用:

git config -l

它显示了所有继承自:系统、全局和本地的值。

重要的!即使您使用git config --global core.symlink false,您仍然应该为您的 OSX 和 Windows 签出不同的 repo,以便该选项生效。因此,基本上,您的外置硬盘上应该有 2 个存储库 - 一个用于 OSX,一个用于 Windows。否则你仍然会得到差异。

于 2014-11-21T11:00:09.163 回答