如何从命令行创建拉取请求?

How to create pull request from command line?

当我完成工作后,我添加、提交并将更改推送到当前分支跟踪的远程分支。所以命令如下

checkout donkey
add .
commit --message
push

现在,我想创建一个拉取请求。无论我请求本地驴子还是远程驴子拉动,对我来说都没有关系。我可以使用 GUI 来执行此操作,但在我看来,使用 CLI 执行该操作更像是专横。

根据 this article,我应该 运行 像这样。

git request-pull donkey remote/donkey

或者也许

git request-pull remote/donkey remote/dev

然而,在尝试了几种不同的组合之后,我都失败了,只得到了一系列错误,暗示命令是正确的,但参数没有意义。

奇怪的是,在谷歌搜索时找不到太多关于创建拉取请求的信息,可能淹没在使用 GUI 的信息中。

拉取请求 是 GitHub、Bitbucket 或其他网络托管服务提供的东西。它不是 Git 本身的一部分。

git request-pull 命令生成 电子邮件 。如果电子邮件消息是您的托管服务提供商为您提供的(或一种)机制来发出 拉取请求 ,这可能会起作用。然而,GitHub 和 Bitbucket 以及其他提供商使用的实际机制并不是基于电子邮件的,因此这没有任何好处。

Kevin Siahaan's answer (deleted since I started typing this) provides links to some CLI tools for manipulating GitHub without using a browser. This adds a set of additional commands, not part of Git itself but usable via the git front end. 有一个 link 到另一个 Git 集线器特定的 CLI。但这仅适用于 GitHub。您正在使用 Bitbucket。

请参阅 了解一些其他特定于 Bitbucket 的 links。

请注意,如果您使用自己喜欢的任何语言编写自己的工具; Python 可能是一个不错的选择,因为 the requests library 使得调用 REST 服务器操作变得非常容易,尽管 Go 也很适合包装 Web 操作——您可以将可执行映像放在 [=13= 中的任何位置],将其命名(例如)git-xyzzy,并将其调用为 git xyzzy。像这样扩展 Git 有一些小的限制:特别是 git help xyzzy 通常不起作用,除非您以系统提供手册页文档的任何方式安装了手册页文档。但它对于编写新的自定义命令非常有用。

我要把@Maroun 的评论拉到一个答案中以提高可见性。 GitHub 有一个正式发布的从命令行创建拉取请求的解决方案:GitHub CLI.

我使用它的方法是 create a Personal Access Token 并将其传递给 gh auth 以登录到我公司的 GitHub 企业站点,然后创建 PR:

gh auth login --hostname github.my_company.com --with-token < my_token.txt
gh pr create --title "Pull request title" --body "Pull request body"