如何检查git commit是否正在工作?

如何检查git commit是否正在工作?,git,filesystems,commit,large-files,Git,Filesystems,Commit,Large Files,我在一个包含大量图像的大目录上调用git commit。我已经等了20分钟了。我知道git在大小上的伸缩性很差,所以我不确定这是git在浪费时间,还是进程因为某种原因而停止了 我希望看到git做任何事情,在终端上打印一些东西,闪烁光标。。。我只需要检查它是否正在运行,没有睡觉或等待什么,死锁,故障 这可能吗?我在Ubuntu上。您可以打开调试标志来查看发生了什么 GIT_TRACE=1 <command> # For example GIT_TRACE=1 git commit

我在一个包含大量图像的大目录上调用git commit。我已经等了20分钟了。我知道git在大小上的伸缩性很差,所以我不确定这是git在浪费时间,还是进程因为某种原因而停止了

我希望看到git做任何事情,在终端上打印一些东西,闪烁光标。。。我只需要检查它是否正在运行,没有睡觉或等待什么,死锁,故障


这可能吗?我在Ubuntu上。

您可以打开调试标志来查看发生了什么

GIT_TRACE=1 <command>

# For example
GIT_TRACE=1 git commit
GIT_TRACE=1
#比如说
GIT_TRACE=1 GIT提交

git commit
通常几乎是即时的,因为大部分工作都是在
git add
期间完成的。如果你使用
git commit-a
,它基本上在所有东西上运行
git add
,这是一个缓慢的部分。我只是做了git commit,而不是git commit-aI不能夸大这个文件夹有多大,它有数百万个文件(只是尝试在一个子文件夹中提交5000个文件的子集)
git commit
必须在每个(子)目录中写出一个
对象,因此如果树非常茂密,那将是很多树对象。每个树对象都应该非常快。然后它必须写出提交,这是一个对象,并更新一个分支名称。假设总共有1000棵树:Git必须编写1002个文件才能完成此提交。如果您的文件系统具有慢速
stat
操作,则可能是非常缓慢的
git状态
,在这种情况下,设置一些“skip stat operations”标志可能会有所帮助。但实际上我还没有在实践中尝试过。