349

似乎您必须与 github.com 交互才能发起拉取请求。是这样吗?

4

11 回答 11

127

更新hub命令现在是一个官方 github 项目,还支持创建拉取请求

原件

添加到集线器命令似乎特别有用:http: //github.com/defunkt/hub或 github gem:http: //github.com/defunkt/github-gem

我建议向那些要求它的项目提出问题。github的家伙反应灵敏。

于 2010-10-27T21:51:48.717 回答
57

Git 现在附带一个子命令'git request-pull' [-p] <start> <url> [<end>]

您可以在此处查看文档

您可能会发现这很有用,但它与 GitHub 的功能并不完全相同

于 2014-12-06T19:54:30.530 回答
31

使用Hub 命令行包装器,您可以将其链接到 git,然后您可以执行 git pull-request

从集线器的手册页:

   git pull-request [-f] [TITLE|-i ISSUE|ISSUE-URL] [-b BASE] [-h HEAD]
          Opens a pull request on GitHub for the project that the "origin" remote points to. The default head of the pull request is the current branch. Both base and head of the pull request can be explicitly given in one  of  the  following  formats:  "branch",  "owner:branch",
          "owner/repo:branch". This command will abort operation if it detects that the current topic branch has local commits that are not yet pushed to its upstream branch on the remote. To skip this check, use -f.

          If TITLE is omitted, a text editor will open in which title and body of the pull request can be entered in the same manner as git commit message.

          If instead of normal TITLE an issue number is given with -i, the pull request will be attached to an existing GitHub issue. Alternatively, instead of title you can paste a full URL to an issue on GitHub.
于 2012-08-14T01:34:24.920 回答
22

注意Some of this answer is now outdated.(2022-01-27)
(例如使用 gh Gem。)
目前唯一能够做到这一点的工具是hubgh


一个男人搜索...

man git | grep pull | grep request

git request-pull <start> <url> [<end>]

但是,尽管有名字,但它不是你想要的。根据文档:

生成一个请求,要求您的上游项目将更改拉入他们的树中。打印到标准输出的请求以分支描述开始,总结了更改并指出可以从哪里提取它们。

@HolgerJust提到了满足您需求的 github gem:

sudo gem install gh 
gh pull-request [user] [branch]

其他人提到了hubgithub的官方包:

sudo apt-get install hub

或者

brew install hub 

然后

hub pull-request [-focp] [-b <BASE>] [-h <HEAD>]
于 2011-02-18T20:21:51.477 回答
16

除了充当 Git 的代理github/hub之外,您现在(2020 年 2 月)还拥有:cli/cli

请参阅“增强您的命令行体验:GitHub CLI 现在处于测试阶段

创建拉取请求

创建一个分支,进行多次提交以修复问题中描述的错误,并使用 gh 创建拉取请求以分享您的贡献。

cli/cli pr 创建 -- https://i1.wp.com/user-images.githubusercontent.com/10404068/74261506-35df4080-4cb0-11ea-9285-c41583009e6c.png?ssl=1

通过使用 GitHub CLI 创建拉取请求,它还会在您还没有分支时自动创建一个分支,它会推送您的分支并创建您的拉取请求以合并您的更改。


2020 年 4 月:“ GitHub CLI 现在支持自动填充拉取请求和自定义配置

GitHub CLI 0.7 已经发布,根据我们的 beta 用户提供的反馈,我们提供了一些要求最高的增强功能。
自上一个次要版本 0.6 以来,有三个主要功能:

  • 配置gh为将您的首选编辑器与gh config set editor [editor].
  • 配置gh为默认使用 SSH gh config set git_protocol ssh
    默认的 Git 协议是 HTTPS。
  • 使用 .自动填充来自提交的拉取请求的标题和正文gh pr create --fill

所以:

gh pr create --fill
于 2020-02-12T21:33:22.777 回答
9

我正在使用简单的别名来创建拉取请求,

alias pr='open -n -a "Google Chrome" --args "https://github.com/user/repo/compare/pre-master...nawarkhede:$(git_current_branch)\?expand\=1"'
于 2019-09-09T11:12:32.603 回答
7

我最终制作了自己的,我发现它在周围的其他解决方案中效果更好。

https://npmjs.org/package/pullr

于 2013-03-17T23:46:09.730 回答
5

我最近创建了一个工具,它完全符合您的要求:

https://github.com/jd/git-pull-request

它在单个命令中自动执行所有操作,分叉 repo,推送 PR 等。如果您需要编辑/修复它,它还支持更新 PR!

于 2017-07-20T08:33:33.220 回答
1

我以前用过这个工具——虽然看起来需要先打开一个问题,但如果你使用 github 问题跟踪,它非常有用并且真正简化了工作流程。git open-pull 然后从您所在或选择的任何分支提交拉取请求。 https://github.com/jehiah/git-open-pull

编辑:看起来你可以即时创建问题,所以这个工具是一个很好的解决方案。

于 2012-05-04T14:57:48.890 回答
1

你可以安装github 官方 CLI来创建 PR 和做其他事情

建立:

gh auth login

创建公关:

gh pr create

合并:

gh pr merge

于 2021-08-25T21:10:22.317 回答
0

是的。您可以安装集线器CLI 实用程序。
在 MACOS 上:brew install hub

您需要拥有一次 GitHub 令牌才能登录。

User -> Dev settings -> Personal tokens -> Generate
(见:https ://github.com/settings/tokens )

git checkout -b mybranch
hub pull-request -b master -h mybranch

#user:     your_user_name
#password: your_git_token
于 2021-12-14T17:46:22.363 回答