Bash 为什么git挂起git提交,目录约为1000个文件

Bash 为什么git挂起git提交,目录约为1000个文件,bash,git,performance,optimization,Bash,Git,Performance,Optimization,我有一个大的嵌套目录,其中包含

我有一个大的嵌套目录,其中包含<1000个文件。它们位于外部硬盘上
exthd

$ cd /Volumes/exthd/project
$ tree 10/44/
├── 0
│   └── record.yaml
├── 00
│   ├── 11
│   │   └── record.yaml
│   ├── 18
│   │   └── record.yaml
│   ├── 37
│   │   └── record.yaml
│   ├── 41
│   │   └── record.yaml
│   ├── 43
│   │   └── record.yaml
│   ├── 47
│   │   └── record.yaml
│   ├── 77
│   │   └── record.yaml
│   └── 83
│       └── record.yaml
├── 01
│   ├── 02
│   │   └── record.yaml
│   ├── 07
│   │   └── record.yaml
│   ├── 27
│   │   └── record.yaml
│   ├── 61
│   │   └── record.yaml
│   ├── 63
│   │   └── record.yaml
│   ├── 67
│   │   └── record.yaml
│   ├── 68
│   │   └── record.yaml
│   ├── 73
│   │   └── record.yaml
│   └── record.yaml
├── 02
│   ├── 17
│   │   └── record.yaml
│   ├── 33
│   │   └── record.yaml
│   ├── 38
│   │   └── record.yaml
│   ├── 47
│   │   └── record.yaml
│   ├── 58
│   │   └── record.yaml
│   ├── 63
│   │   └── record.yaml
│   ├── 77
│   │   └── record.yaml
│   └── 88
│       └── record.yaml
├── 02
│   ├── 01
│   │   └── record.yaml
│   ├── 41
│   │   └── record.yaml
│   ├── 48
│   │   └── record.yaml
│   ├── 73
│   │   └── record.yaml
│   ├── 83
│   │   └── record.yaml
│   └── record.yaml
├── 04
│   ├── 27
│   │   └── record.yaml
│   ├── 33
│   │   └── record.yaml
│   ├── 48
│   │   └── record.yaml
│   ├── 61
│   │   └── record.yaml
│   ├── 67
│   │   └── record.yaml
│   ├── 73
│   │   └── record.yaml
│   └── record.yaml
├── 05
│   ├── 08
│   │   └── record.yaml
│   ├── 11
│   │   └── record.yaml
│   ├── 17
│   │   └── record.yaml
│   ├── 38
│   │   └── record.yaml
│   ├── 41
│   │   └── record.yaml
│   ├── 53
│   │   └── record.yaml
│   ├── 58
│   │   └── record.yaml
│   ├── 71
│   │   └── record.yaml
│   └── 87
│       └── record.yaml
├── 06
│   ├── 07
│   │   └── record.yaml
│   ├── 11
│   │   └── record.yaml
│   ├── 31
│   │   └── record.yaml
│   └── 41
│       └── record.yaml
├── 07
│   ├── 43
│   │   └── record.yaml
│   ├── 67
│   │   └── record.yaml
│   ├── 78
│   │   └── record.yaml
│   ├── 88
│   │   └── record.yaml
│   └── record.yaml
├── 08
│   ├── 08
│   │   └── record.yaml
│   ├── 51
│   │   └── record.yaml
│   ├── 53
│   │   └── record.yaml
│   ├── 63
│   │   └── record.yaml
│   ├── 68
│   │   └── record.yaml
│   └── record.yaml
├── 08
│   ├── 01
│   │   └── record.yaml
│   ├── 67
│   │   └── record.yaml
│   ├── 73
│   │   └── record.yaml
│   ├── 77
│   │   └── record.yaml
│   └── 78
│       └── record.yaml
├── 1
│   └── record.yaml
├── 10
│   ├── 27
│   │   └── record.yaml
│   ├── 37
│   │   └── record.yaml
│   ├── 48
│   │   └── record.yaml
│   └── 88
│       └── record.yaml
├── 11
│   ├── 21
│   │   └── record.yaml
│   ├── 33
│   │   └── record.yaml
│   └── 47
│       └── record.yaml
├── 12
│   ├── 31
│   │   └── record.yaml
│   ├── 37
│   │   └── record.yaml
│   ├── 53
│   │   └── record.yaml
│   ├── 58
│   │   └── record.yaml
│   ├── 67
│   │   └── record.yaml
│   ├── 73
│   │   └── record.yaml
│   ├── 83
│   │   └── record.yaml
│   └── 87
│       └── record.yaml
├── 13
│   ├── 37
│   │   └── record.yaml
│   ├── 38
│   │   └── record.yaml
│   ├── 57
│   │   └── record.yaml
│   ├── 68
│   │   └── record.yaml
│   ├── 73
│   │   └── record.yaml
│   └── 88
│       └── record.yaml
├── 14
│   ├── 11
│   │   └── record.yaml
│   ├── 23
│   │   └── record.yaml
│   ├── 27
│   │   └── record.yaml
│   ├── 33
│   │   └── record.yaml
│   ├── 38
│   │   └── record.yaml
│   ├── 47
│   │   └── record.yaml
│   ├── 63
│   │   └── record.yaml
│   └── 88
│       └── record.yaml
├── 15
│   ├── 23
│   │   └── record.yaml
│   ├── 31
│   │   └── record.yaml
│   ├── 47
│   │   └── record.yaml
│   ├── 48
│   │   └── record.yaml
│   ├── 78
│   │   └── record.yaml
│   ├── 88
│   │   └── record.yaml
│   └── 87
│       └── record.yaml
├── 16
│   ├── 01
│   │   └── record.yaml
│   ├── 18
│   │   └── record.yaml
│   ├── 31
│   │   └── record.yaml
│   ├── 33
│   │   └── record.yaml
│   ├── 87
│   │   └── record.yaml
│   └── record.yaml
├── 17
│   ├── 27
│   │   └── record.yaml
│   ├── 87
│   │   └── record.yaml
│   ├── 88
│   │   └── record.yaml
│   └── record.yaml
├── 18
│   ├── 43
│   │   └── record.yaml
│   ├── 53
│   │   └── record.yaml
│   ├── 61
│   │   └── record.yaml
│   ├── 67
│   │   └── record.yaml
│   ├── 81
│   │   └── record.yaml
│   └── 87
│       └── record.yaml
├── 18
│   ├── 02
│   │   └── record.yaml
│   ├── 08
│   │   └── record.yaml
│   ├── 38
│   │   └── record.yaml
│   ├── 57
│   │   └── record.yaml
│   ├── 67
│   │   └── record.yaml
│   ├── 78
│   │   └── record.yaml
│   ├── 87
│   │   └── record.yaml
│   └── 88
│       └── record.yaml
├── 2
│   └── record.yaml
├── 20
│   ├── 27
│   │   └── record.yaml
│   ├── 53
│   │   └── record.yaml
│   └── 83
│       └── record.yaml
├── 21
│   ├── 18
│   │   └── record.yaml
│   └── 87
│       └── record.yaml
├── 22
│   ├── 02
│   │   └── record.yaml
│   ├── 08
│   │   └── record.yaml
│   ├── 13
│   │   └── record.yaml
│   ├── 31
│   │   └── record.yaml
│   ├── 38
│   │   └── record.yaml
│   ├── 61
│   │   └── record.yaml
│   ├── 73
│   │   └── record.yaml
│   ├── 87
│   │   └── record.yaml
│   └── 83
│       └── record.yaml
├── 23
│   ├── 02
│   │   └── record.yaml
│   ├── 17
│   │   └── record.yaml
│   ├── 47
│   │   └── record.yaml
│   ├── 58
│   │   └── record.yaml
│   └── 63
│       └── record.yaml
...~1000 or so files
我正试图将其委托给大型git回购:

$ git commit -v 10/44/ -m 'Autocommit'

但是旋转器在终端大约3秒钟后消失,它只是在那里停留了10分钟以上(在我取消这个过程之前)。即使指定了
-v
,也没有看到详细的输出。想知道如何让git提交这些文件,而不是一个接一个地提交它们。想知道为什么它没有进行任何处理就挂起了,或者后台是否发生了什么事情。根据我的经验,1000个文件最多需要5分钟,但这要长得多。如果我缩短目录,同样的事情。

首先要检查的是您的Git版本:

  • 这可能会影响你的承诺
  • 可以加快对最新提交的检索,以建立在下一个提交的基础上
  • 等等

是整个回购协议中的文件少于1000个,还是仅此目录?如果是后者,整个回购协议中有多少个文件?此外,外部硬盘上的驱动器速度是多少?使用什么接口(如USB 2.0)连接它?使用的是什么操作系统和文件系统?repo中有1亿个文件(大多数没有添加或提交,只有大约10000个提交,因为我正在尝试找到提交这么多对象的更好方法)。1000个文件嵌套在这个特定的示例目录中。这是Mac,WD外部硬盘USB 3.0。每次提交都会保存索引中的每个文件。你的工作树中的东西是不相关的。索引中有多少个文件?(
git ls index | wc-l
)同时,要查看您的计算机正在执行什么操作,请打开活动监视器,查看磁盘和进程活动。
git:'ls index'不是git命令。请参阅“git--help”
Oops,对不起,我一直都是这样做的:它是
gitls文件(默认情况下列出索引的内容,因此是我的心理替代)。