【问题标题】:How can I count number of commits between two branches?如何计算两个分支之间的提交次数?
【发布时间】:2014-12-12 08:44:15
【问题描述】:

使用git diff --shortstat my_branch master 是了解有多少文件更改以及插入和删除的好方法。我阅读了git diff documentation,但我找不到一种方法来判断my_branchmaster 之间的提交次数。存在吗?

【问题讨论】:

  • 你要的是(#commits on master not on my_branch)+(#commits on my_branch not on master)?

标签: git


【解决方案1】:

我觉得你可以试试:

git log --oneline mybranch ^master

具体数量:

git log --oneline mybranch ^master | wc -l

应该给你你想要的信息。

【讨论】:

  • ^ 符号是怎么回事?
  • 表示选择以mybranch开头、以master结尾且不包括master的日志。
【解决方案2】:

我发现这要简单得多:

git rev-list --count my-branch ^master

【讨论】:

  • 在 git 版本 2.13.5 (Apple Git-94) 的分支之间缺少 ..
  • .. Ubuntu Linux 上的 git 版本 2.14.2 不需要。
  • 如果您已经在my-branch 上,您可以使用HEAD 代替:git rev-list --count HEAD ^master
【解决方案3】:

我无法得到 etech 的工作答案,但这在 OS X 上对我有用:

git rev-list --count master..my-branch

my-branch 可以省略当前分支的更改。

【讨论】:

    【解决方案4】:

    另一种选择。哈希/数字只是示例

    $ git checkout my_branch
    $ git cherry master
    
    + 950b187c4b28844680df7008cfa3b348c1a46016
    + 109e427cbe84c3c8fc0ac2fbfb5120bcc2511933
    + 9bc217c0bcabbd6aa4ba88bbaaad23805994f90d
    + 74e054614a1bb1c442fbcf53926dcb910097321c
    + b34ae1ce8a58e0cbdbe1657ebca81a3036d7c72d
    

    将给出在 my_branch 但不在 master 中的提交哈希列表

    $ git checkout my_branch
    $ git cherry master | wc -l
    5
    

    将给出在 my_branch 但不在 master 中的提交数

    阅读更多关于 git cherry here

    【讨论】:

      【解决方案5】:

      这给了我自 branch_A 分支以来我对 branch_being_merged_in 的提交次数:

      git log --pretty=%H branch_A..branch_being_merged_in | wc -l

      【讨论】:

        猜你喜欢
        • 2011-02-01
        • 2012-07-24
        • 1970-01-01
        • 2022-07-06
        • 2017-11-05
        • 2023-02-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多