【发布时间】:2015-09-24 13:06:24
【问题描述】:
在 git 中,可以使用以下命令获取某个分支 xxxx 尚未合并到 master 中的分支提交列表:
git rev-list xxxx --not master
例如,如果在分支 xxxx 中有 3 次提交,您将在 3 行上得到一个包含 3 个哈希的列表:
$ git rev-list xxxx --not master
<hash1>
<hash2>
<hash3>
但是,如果我将此分支合并到 master 中,我将无法再使用相同的命令检索此哈希列表;我得到一个空列表,因为提交现在在 master 中。
我想知道是否有人有可以在合并后生成此列表的命令。最好,无论提交是否已合并到主控,该命令都将以相同的方式工作。
以下内容基本上可以解决问题:
git rev-list xxxx --not <hash3>^
但是,我想在脚本中使用它,并且我不想提供 <hash3> 作为参数 - 我需要以编程方式找到它。
【问题讨论】:
-
你想用脚本实现什么?可能有更简单的方法。
-
我对这种可能性持开放态度。该脚本的目的是为 Trac (trac.edgewall.org) 生成统一的差异视图链接。无论该分支是否已合并,脚本都需要在给定特定远程分支的情况下生成相同的输出链接。
-
合并后直接
git rev-list master^..xxxx应该是您要查找的内容。如果master不再直接指向合并提交,它就会变得更加困难。 -
是的。所说的困难是我在这里试图克服的。无论调用脚本时 master 在哪里,我都想要相同的哈希列表。
标签: git