代码之家  ›  专栏  ›  技术社区  ›  GaryO

Git:如何查看在现在合并的分支上完成的工作

git
  •  4
  • GaryO  · 技术社区  · 15 年前

    我们即将从svn迁移到git,我的一个用户有一个问题。我们有许多长寿命的发行分支。它们定期被标记(rel\u foo\u 10)并合并回主节点。我们需要能够列出在发布分支上所做的所有提交。执行git log master..rel \u foo \u 10(显示所有提交都可以从rel \u foo \u 10访问,但不能从master访问)不起作用,因为合并后所有提交都可以从master的提示访问。这在git中可能吗?

    共同的祖先和我想要 最早 ).

    2 回复  |  直到 15 年前
        1
  •  1
  •   GaryO    15 年前

    到目前为止,我在网上看到的最好的解决方案是这个(实际上这是从我找到的解决方案中修改出来的,使用--date order,这是正确排序边界提交所必需的):

    base=`git rev-list --boundary release_branch...master --date-order | \
       grep '^-' | tail -1 | cut -c2-`
    git log $base..release_branch
    

    这是获得git中(最古老的)分支库的最佳/唯一方法吗?

        2
  •  0
  •   slebetman    15 年前

    这就是我想到的解决方案:只需在合并之前从master创建一个分支。如果您愿意,这个分支机构可能是永久性的,或者在我的情况下,它是临时的:

    git branch temp
    

    现在,当您合并时,有一个合并开始位置的引用:

    git merge rel_foo_10
    git log temp..HEAD
    

    一旦我将日志保存到文件中,我就可以删除临时分支。如果您计划使预合并分支永久化,那么您可以使用一些约定来命名它,例如 pre_rel_foo_10