【问题标题】:Git command to get count of commits for a repositoryGit 命令获取存储库的提交计数
【发布时间】:2021-07-20 13:10:35
【问题描述】:

我们的组织正在从 BitBucket 迁移到 GitHub。我们需要执行迁移后验证。有人可以帮助以下 git 命令:

  1. 获取每个存储库的提交计数。我已经尝试过下面的,但它们没有给出正确的输出:

    git rev-list --count [revision]
    
    git rev-list --all --count
    
  2. 获取每个存储库的打开/合并/拒绝/总 PR 数。

  3. 获取 git 存储库中的行数。 (尝试了这个 SO 接受的答案,但在我的情况下它没有给出正确的输出 https://stackoverflow.com/questions/4822471/count-number-of-lines-in-a-git-repository#:~:text=Blank%20lines%20are%20counted.&text=This%20searches%20all%20files%20versioned,the%20total%20number%20of%20lines!&text=this%20works%20if%20you%20count,as%20the%20files%20of%20interest.)

【问题讨论】:

  • 为什么不信任git rev-list --all --count的输出? (“他们没有给出正确的输出”)
  • 请记住,open/merged/declined/total PRs 不是 git 存储库本身的属性。因此,无论您使用什么工具来迁移内容,都需要使用 BitBucket 和 GitHub 特定的 API 来传输这些内容。
  • 加倍评论:你能解释一下是什么让你说git rev-list --count 没有给出正确的输出吗?更准确地说:您能否详细说明您采取了哪些操作(在本地工作存储库/在新克隆/在同事的克隆/...上运行它)以及您的期望(看起来您希望看到一个已知的number :它是显示在 bitbucket 中的数字吗?github 吗?您的本地 repo 吗?)
  • @RomainValeri 我创建了一个新的存储库来测试该命令。我创建了 3-4 个分支,并且在每个分支中都做了很少的提交。我也合并了一些 PR。我手动计算了这个 repo 的提交,并与命令输出比较,它不匹配。
  • 此外,请尝试在此处的一篇文章中仅写 1 个问题。这个问题:“获取 git 存储库中的行数”可能完全由“获取文件夹中文件的行数”处理,但这取决于您是否认为它对于 git 存储库可能有所不同,但它与计数提交相比,将保证一套完整的答案和 cmets。

标签: git github bitbucket


【解决方案1】:

与其计算两个克隆之间的提交计数,不如编写一个比较分支和提交哈希的脚本。

你可以运行:

git ls-remote [url to any git repo]

从远程存储库获取分支和引用的列表,以及每个引用的当前哈希。

所以你可以运行:

git ls-remote [url of bitbucket repo] > bitbucket.txt
git ls-remote [url of github repo] > github.txt

并比较这两个文件,看看您期望的所有提交是否已从一个 repo 移动到另一个 repo。

如评论中所述:“问题”或“合并请求”之类的数据不会直接存储在 git 存储库中,必须使用其他一些工具进行检查——可能是依赖 github 和 bitbucket API 的工具来获取它数据。

【讨论】:

    猜你喜欢
    • 2020-09-06
    • 1970-01-01
    • 2014-10-23
    • 1970-01-01
    • 2020-08-18
    • 2011-09-03
    • 1970-01-01
    • 2012-06-01
    • 2012-10-17
    相关资源
    最近更新 更多