无响应的 git 状态、差异、添加(挂起)

问题描述 投票:0回答:8

以下 git 命令在我的存储库之一中挂起(不响应):

git status
git diff
git stash
git add

我不能

git add
的事实让我相信无响应不仅仅是由于文件太大。由于
git stash
也挂起,我认为这不仅仅是与源通信的问题。

git remote show origin
显示预期的远程 URL。我正在一个分支上工作,并已检查它是否尚未重命名。 (FWIW,起源托管在 bitbucket 上。)

以上所有命令都在不同的存储库中按预期响应,因此这不是由于互联网连接造成的。

还有其他解决此问题的技巧吗?

git bitbucket ubuntu-16.04
8个回答
20
投票

无论它的价值如何,请尝试

git fsck
(根据其中一条评论)然后
git gc
。当运行
git status
git commit
时,它们在处理多个文件后挂在我面前;并运行这些命令解决了问题。我不知道哪个命令真正解决了问题。


6
投票

大约15分钟后才响应,现在立即响应,不再延迟。

使用 Git 2.20(2018 年第 4 季度),您至少能够检查

git status
是否正在做 某事(而不是仅仅停留在那里):它学会在刷新索引时显示一个 进度条。好久了。

请参阅Nguyễn Thái Ngọc Duy (pclouds)

commit ae9af12(2018年9月15日)。
(由 Junio C Hamano --
gitster
--
合并于 commit 4d87b38,2018 年 10 月 19 日)

status
:如果刷新索引时间过长,则显示进度条

刷新索引通常很快,但有时仍然需要很长时间。

  • 冷缓存就是其中之一。
  • 或者将存储库复制到新位置 (*)。

展示一些东西让用户知道“

git status
”没有挂起,它只是忙着做某事。

(*) 在这种情况下,索引中的所有统计信息都将失效并且 git 回退到重新散列所有文件内容以查看是否有任何内容 更新索引中的统计信息之间的差异。这相当 昂贵的。即使是像 git.git 这样小的 repo,也需要 3 秒。


4
投票

执行git fsck。就我而言,它已经解决了问题。


4
投票

对于任何新手来说,我的都挂在 git add 上 - 我忘记了我一直在做 pg_dumps 并且在目录中留下了一些大文件。我将它们移动到另一个目录并解决了这个问题。


3
投票

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
再次响应。


2
投票

就我而言,有帮助的是重新启动我的计算机。


1
投票

我发现我的是因为我从

.gitignore
文件中删除了 /node_module 。它在之前的添加中就存在,所以一旦我重新添加 /node_module,git 就开始正常工作。


0
投票

我发现我的是:

[status]
    submodulesummary = 1

submodulesummary = 1
文件中注释掉这个
~/.gitconfig
配置后,
git status
运行速度更快了。

© www.soinside.com 2019 - 2024. All rights reserved.