git - 并行使用 cygwin-git 和 git for windows

标签 git cygwin

我正在并行使用 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/

相关文章:

c - 在 C 中使用 'CLS' 命令导致屏幕闪烁

emacs - 在 Cygwin 上设置 emacs

git - 如何在本地申请 Pull Request?

python - 让 gcloud 在 Cygwin Windows 中工作

python - subprocess.call 在 Windows 上使用 cygwin 而不是 cmd

git status 显示 ""之间的文件

c - 如何在 c 中乘以 32 位整数

git - 我应该提交无服务器框架 .build 文件夹吗

git - 自动将所有子模块添加到仓库

git - 如何使用 terraform 通过 git 在 azure 中自动部署