git - 如何在不调用 Github API 的情况下获取 GitBash 中特定分支的现有 Pull Request ID 和 Url?

标签 git terminal git-branch git-bash pull-request

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

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

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

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

最佳答案

but it doesn't work for every Branch or always,

那是因为:

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

代替 grepping,尝试检查 PR 分支 HEAD 是否是您当前分支历史的一部分。
参见“How to list branches that contain a given commit?

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

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

关于git - 如何在不调用 Github API 的情况下获取 GitBash 中特定分支的现有 Pull Request ID 和 Url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53877173/

相关文章:

git - 如何撤消 git 混合重置?

git - 在 IntelliJ 中重构时如何将更改日志保存在 git 文件中?

python - 如何使用自定义命令从命令行执行 python 脚本?

command-line - Mac 终端 - 如果行长于窗口,命令行将被覆盖

git - 在 git 中列出特定远程的分支

Git 分支删除

当前分支版本的 GitHub 比较 View

git - 如何配置 Github Desktop 以在 OSX 中从命令行运行?

ruby - 匹配 ANSI 转义码的正则表达式

git - 撤消还原一个分支中的更改