我想知道我在存储库中更改了多少文件。
目前,我使用这个命令,但它太慢了:
n = `git diff --name-only HEAD | wc -l | tr -d '[[:space:]]'`
我编写了一个脚本,为每个子目录执行此命令。每个子目录都是一个 git-repo。有了这个,我可以很容易地看到哪些存储库有我需要提交的更改。
如何更快地获得相同的信息?上面的命令需要大量的时间来执行,对于许多存储库来说这是一个问题。
最佳答案
要获取已修改文件的数量,我会使用 git ls-files
:
git ls-files -m -z | awk -v RS='\0' 'END { print NR }'
-m
显示修改后的文件,-z
以空字符 \0
终止每个文件名。然后使用 awk 来计算记录数。这是最安全的选项,因为它可以正确处理包含奇怪字符(例如换行符)的文件名。
如果您不关心这一点,您可以采用这种稍微简单的方法:
git ls-files -m | wc -l
关于git - 有多少文件已更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33079647/