微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 如何计算远程git存储库的总行数

我想要计入git存储库中的总代码行数.
我在谷歌找到了答案.

git ls-files -z | xargs -0 cat | wc -l

它在本地存储库中运行良好.

但.
我想要计入远程存储库.

所以,我试过了.

git ls-files -z /home/bjyoo/repositories/root/localfiletest.git | xargs -0 cat | wc -l

,

git ls-files -z –git-dir = / home / bjyoo / repositories / root / localfiletest.git | xargs -0 cat | wc -l

git –git-dir = / home / bjyoo / repositories / root / localfiletest.git –ls-files | xargs -0 cat | wc -l

所有命令都失败了

有谁知道如何计算总代码行数?

解决方法:

虽然VonC对于命令失败的原因是正确的,但仍然有一种方法来计算存储库中的行,即使此存储库是裸的.

为了实现这一点,你必须使用git show从特定版本中创建git打印文件内容.

假设您当前在存储库中,这样的命令可能看起来像这样.

for file in $(git ls-tree --name-only -r HEAD); do
    git show HEAD:"$file"
done | wc -l

如果要从其他文件夹执行命令,可以在git关键字后使用–git-dir.

for file in $(git --git-dir=<path-to-repo> ls-tree --name-only -r HEAD); do
    git --git-dir=<path-to-repo> show HEAD:"$file"
done | wc -l

我们使用git ls-tree列出存储库中的所有文件,原因是ls-files在裸存储库中不起作用.然后我们使用git show和特定版本打印文件内容.

您可以查看ls-tree documentationshow documentation以准确了解命令正在执行的操作.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐