我需要检索已合并到 master
中的 PR
numbers列表。这可以通过
git
命令行实现吗?我似乎找不到这样的例子。
尝试
git ls-remote <repo_url> refs/pull/*/merge | awk '{split($2,a,"/");print a[3]}'
Github 的拉取请求是类似
refs/pull/*/head
的引用。如果被接受,则会创建一个参考 refs/pull/*/merge
。 *
是 PR 号码。
git ls-remote
以 refs/pull/*/merge
格式检索引用,其提交位于前面。
awk
以 refs/pull/*/merge
作为分隔符拆分 /
,并打印第三部分,即 PR 编号。
但只有当所有 PR 都合并到
master
时它才有效。我不确定其他分支机构是否可以接受 PR。如果可以,您需要将这些引用和 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
但请注意,它不适用于挤压合并的 PR。
您可以像这样提取 PR 号码列表:
git checkout master # your branch
git log --merges --oneline | grep '#' | awk '{print $5}'