我正在并行使用 cygwin-git 和 git for Windows(实际上由 TortoiseGit 使用)。如果我在同一个存储库上使用它们,如果我之前使用过其他客户端,git status
就会开始刷新索引。
我在运行每个客户端后比较了 git ls-files --debug
的输出。区别在于文件统计信息。虽然 cygwin-client 确实保存了文件统计信息:
dev: -1177461325 ino: 227463
uid: 1129333 gid: 1178613
git for Windows 生成的索引中的文件统计信息全为 0:
dev: 0 ino: 0
uid: 0 gid: 0
我可以停止 git 保存文件统计信息,从而防止切换客户端时刷新索引吗?
最佳答案
有几个 Git 选项您可以尝试看看是否有帮助。您可以将 core.checkstat
设置为 minimal
,这会忽略 uid、gid、设备和 inode 编号,并且可以选择将 core.trustctime
设置为 false ,它忽略 ctime。根据您提供的输出,您应该按顺序尝试它们。
请注意,您可能会遇到一些其他不兼容问题,这些不兼容问题可能会导致无法轻松修复的问题无法解决。如果您有符号链接(symbolic link),则可以以不同的方式存储它们。 Cygwin 可以使用 native Windows 符号链接(symbolic link),也可以不使用,具体取决于它是否使用(以及 Cygwin 如果使用的话如何存储大小),您可能会发现 git status
仍然执行刷新。普通 Windows 和适用于 Linux 的 Windows 子系统也会发生这种情况,并且也无法修复。
关于git - 并行使用 cygwin-git 和 git for windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57091810/