【问题标题】:how to make "git log commit..commit.." display ONLY commits from given branch如何使“git log commit..commit..”仅显示来自给定分支的提交
【发布时间】:2015-10-09 11:44:31
【问题描述】:

我正在编写一个“更新”钩子来通知问题跟踪器有关推送的提交

更新钩子获取参数如下:

"ref" "oldrev" "newrev"(其中 oldrev 和 newrev 是提交哈希,ref 是 ref 名称,即 "branch")

非常烦人的(并且基本上破坏了整点)是,简单地使用“git log oldrev..newrev”(对于 refs/heads 中已经存在 ref 的情况)枚举在其他分支中完成的所有提交为好吧,如果这些分支被合并到“ref”。

我怎样才能让 git 只显示那些只能从 ref 访问的提交?

非常感谢..

【问题讨论】:

    标签: git


    【解决方案1】:

    如果你只想隐藏合并到“ref”的分支git log --first-parent 可能就足够了。

    另一方面,如果“ref”不是主分支,并且您试图在其起点之前略过提交,那似乎是一个未解决的问题

    【讨论】:

    • (我使用的命令是“git log --oneline --first-parent rev1..rev2”。它在工作回购中完美运行,即使有问题的分支不是最新的。还没有检查它将如何在裸仓库中执行)
    【解决方案2】:

    你尝试过使用

    --no-merges
    Do not print commits with more than one parent. This is exactly the same as --max-parents=1.
    

    来自git-log的文档

    【讨论】:

    • 它确实删除了“合并”,但不是常规提交,在“其他”分支[es]上完成。我想要的是仅显示仅属于正在推送的分支的提交(因为其他提交已经在 repo 上)
    猜你喜欢
    • 2017-06-05
    • 2012-08-05
    • 2021-09-23
    • 2014-03-11
    • 2021-10-11
    • 1970-01-01
    • 2019-11-09
    • 2022-10-12
    • 2019-08-10
    相关资源
    最近更新 更多