我们有一个 git repo (远程托管在 github - 我们称之为 Clients repo),根目录中有 210 多个目录。我们有 210 多台 Windows 服务器,每台服务器都需要其中一个根目录,而实际上并不需要其他根目录。
所以我们登录到其中一台服务器,并使用1.8.1.msysgit.1
- 从 git hub 克隆客户端 repo
- 打开稀疏结帐
- 使用我们希望在此服务器工作副本中的单个 *directory/* 更新稀疏签出文件
- 执行我们的读树操作
10 次中有 9 次一切正常,并且工作副本包含我们期望的单个目录。
然而,每隔一段时间,它就不会像预期的那样工作,我们也会得到一些其他目录流到工作副本中。它从来都不是完整的 210+,但会在 6-10 个其他目录之间。这些目录与所需目录的模式不匹配,也没有与所述模式匹配的任何子目录。
一旦发生这种情况,我们就永远无法解决本地 repo。我们尝试过:
- 各种复位
- 各种读树
- 禁用/重新启用稀疏结帐
- 检查日志以查看是否发生了任何奇怪的事情
最终,我们通常最终会删除本地 repo,再次执行相同的步骤,并且它只是第二次工作。
除了重复克隆、设置稀疏签出等之外,我们还没有找到可靠地重现该问题的方法。在这种情况发生的 20 次左右中,它只在非 Windows 机器上发生过一次(我们有一个运行 git v1.8.1.5 的 ubuntu 服务器,两周前显示了同样的问题)。
我的 Google-Fu 在这方面很弱。我希望能深入了解为什么会发生这种情况,以及任何不让我们删除存储库并重新克隆它的潜在解决方法。提前致谢!