首页 > 解决方案 > 获取已合并到 master 的 pull request refs 列表

问题描述

我需要检索已合并到的 PR编号master列表。这可以通过git命令行实现吗?我似乎无法找到这样的例子。

标签: gitgithub

解决方案


尝试

git ls-remote <repo_url> refs/pull/*/merge | awk '{split($2,a,"/");print a[3]}'

Github 的拉取请求是 ref 之类的refs/pull/*/head。如果它被接受,refs/pull/*/merge就会创建一个 ref。*是 PR 编号。

git ls-remote检索格式中的 refs,refs/pull/*/merge它们的提交在前面。

awk拆分refs/pull/*/merge/分隔符并打印第三部分,即 PR 编号。

但它只有在所有 PR 都合并到master. 我不确定 PR 是否可以被其他分支机构接受。如果可以,您需要获取这些 refs 并master到本地存储库并找到那些可从master.

git init foo
git fetch <repo_url> refs/pull/*/merge:refs/pull/*/merge
git fetch <repo_url> refs/heads/master
git for-each-ref refs/pull/*/merge  --format="%(refname)" --merged=FETCH_HEAD

但请注意,它不适用于 squash-merged 的​​ PR。


推荐阅读