以下 git 命令在我的存储库之一中挂起(不响应):
git status
git diff
git stash
git add
我不能
git add
的事实让我相信无响应不仅仅是由于文件太大。由于 git stash
也挂起,我认为这不仅仅是与源通信的问题。
git remote show origin
显示预期的远程 URL。我正在一个分支上工作,并已检查它是否尚未重命名。 (FWIW,起源托管在 bitbucket 上。)
以上所有命令都在不同的存储库中按预期响应,因此这不是由于互联网连接造成的。
还有其他解决此问题的技巧吗?
无论它的价值如何,请尝试
git fsck
(根据其中一条评论)然后git gc
。当运行 git status
和 git commit
时,它们在处理多个文件后挂在我面前;并运行这些命令解决了问题。我不知道哪个命令真正解决了问题。
大约15分钟后才响应,现在立即响应,不再延迟。
使用 Git 2.20(2018 年第 4 季度),您至少能够检查
git status
是否正在做 某事(而不是仅仅停留在那里):它学会在刷新索引时显示一个 进度条。好久了。
请参阅Nguyễn Thái Ngọc Duy (pclouds
)
的commit ae9af12(2018年9月15日)。
gitster
-- 合并于 commit 4d87b38,2018 年 10 月 19 日)
:如果刷新索引时间过长,则显示进度条status
刷新索引通常很快,但有时仍然需要很长时间。
- 冷缓存就是其中之一。
- 或者将存储库复制到新位置 (*)。
展示一些东西让用户知道“
”没有挂起,它只是忙着做某事。git status
(*) 在这种情况下,索引中的所有统计信息都将失效并且 git 回退到重新散列所有文件内容以查看是否有任何内容 更新索引中的统计信息之间的差异。这相当 昂贵的。即使是像 git.git 这样小的 repo,也需要 3 秒。
执行git fsck。就我而言,它已经解决了问题。
对于任何新手来说,我的都挂在 git add 上 - 我忘记了我一直在做 pg_dumps 并且在目录中留下了一些大文件。我将它们移动到另一个目录并解决了这个问题。
Git 可能正在构建未跟踪文件的索引。将数千个新文件添加到新克隆的存储库后,
git status
似乎挂起超过 2 分钟,然后响应:
It took 139.67 seconds to enumerate untracked files. 'status -uno'
may speed it up, but you have to be careful not to forget to add
new files yourself (see 'git help status').
如果您遇到类似情况,请考虑将未跟踪的文件移出存储库,并确认
git status
再次响应。
就我而言,有帮助的是重新启动我的计算机。
我发现我的是因为我从
.gitignore
文件中删除了 /node_module 。它在之前的添加中就存在,所以一旦我重新添加 /node_module,git 就开始正常工作。
我发现我的是:
[status]
submodulesummary = 1
在
submodulesummary = 1
文件中注释掉这个~/.gitconfig
配置后,git status
运行速度更快了。