【发布时间】:2017-09-05 06:17:06
【问题描述】:
以下 git 命令在我的一个存储库中挂起(不响应):
git status
git diff
git stash
git add
我不能git add 的事实让我相信没有响应不仅仅是由于文件非常大。由于git stash 也挂了,我认为这不仅仅是与源通信的问题。
git remote show origin 显示预期的远程 URL。我正在一个分支上工作,并检查它是否没有被重命名。 (FWIW,原点托管在 bitbucket 上。)
以上所有命令在不同的 repo 中都按预期响应,因此不是由于 Internet 连接造成的。
解决此问题的任何其他提示?
【问题讨论】:
-
GIT_TRACE=1 GIT_CURL_VERBOSE=2 git status显示什么?你也试过git -vvv吗? -
如果您使用的是 Windows,请检查某个 Windows 进程是否锁定了该存储库中的某些文件。如果是这样,您的
git命令将等待其他进程释放锁,然后再继续。如果其他进程永远不放手,Git 永远不会继续。 -
它在15分钟左右后响应,现在立即响应,没有延迟。正如@torek 所建议的那样,某些文件可能已被锁定。 @torek,我使用的是 Ubuntu 16.04 - 知道如何检查锁定的文件吗? @jojek, git -vvv 返回“未知选项”。我正在使用 git 2.7.4。您的其他建议返回与
git status相同的结果,因为它正在工作...... -
Linux 不会强制锁定非自愿程序,因此 Windows 案例不适用。但是,听起来某些文件由于某种原因具有超级延迟的访问权限。 Linux 支持多种文件系统,包括联网和集群的非本地文件,这些可以任意延迟(基本上是等待某个服务器响应);也许这就是发生在这里。没有访问系统,很难说更多。
-
请执行
git fsck以验证您的存储库的完整性。
标签: git bitbucket ubuntu-16.04