首页 > 解决方案 > 如何在不调用 Github API 的情况下获取 GitBash 中特定分支的现有 Pull Request ID 和 Url?

问题描述

我需要找到问题中描述的确切情况的解决方案。

我只有一个功能分支 ID,我需要在 GitBash(2.20.1) 或终端上获取拉取请求 ID 或 Url,而无需调用 Github API。

我已经尝试过这个,但它并不适用于每个分支或总是,不知道为什么。

git ls-remote origin 'pull/*/head' | grep -F -f <(git rev-parse HEAD) | awk -F'/' '{print $3}'

标签: gitterminalgit-branchgit-bashpull-request

解决方案


但它并不适用于每个分支或总是,

那是因为:

  • 您的分支根本不是 GitHub PR 分支的一部分
  • 或者您的分支有新的本地提交尚未推送到您的 PR 分支,这意味着(您的本地 HEAD 提交的)grep 只能失败。

尝试检查 PR 分支 HEAD 是否是您当前分支历史记录的一部分,而不是 grepping。
请参阅“如何列出包含给定提交的分支?

git fetch origin +refs/pull/*/head:refs/remotes/origin/pr/*
git branch -a --contains <commit>

如果您有任何 /pull/分支机构,您将获得您想要的 PR。


推荐阅读