似乎你必须与github.com交互来发起一个拉请求。是这样吗?


当前回答

除了github/hub,它作为Git的代理,你现在(2020年2月)有cli/cli:

参见“增强你的命令行体验:GitHub CLI现在处于测试版”

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

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


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

GitHub CLI 0.7发布了我们beta版用户反馈的几个最受欢迎的增强功能。 自上一个小版本0.6以来,有三个主要特性: 将gh配置为使用gh配置集编辑器[editor]的首选编辑器。 配置gh默认为SSH,使用gh config set git_protocol SSH。 Git默认协议为HTTPS。 用gh pr create -fill自动填充你提交的pull请求的标题和正文。

So:

gh pr create --fill

其他回答

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

原:

似乎在hub命令中添加一个特别有用的东西:http://github.com/defunkt/hub或github gem: http://github.com/defunkt/github-gem

我建议将问题提交给那些需要它的项目。github的人都很有反应。

注意:有些答案现在已经过时了。(2022-01-27) (例如使用gh Gem) 目前唯一能够做到这一点的工具是hub和gh。


一个男人搜索…

man git | grep pull | grep request

给了

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

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

生成一个请求,要求上游项目将更改拉入其中 他们的树。打印到标准输出的请求以 分支描述,总结变更并指出变更的位置 可以拉。

@HolgerJust提到了github宝石,做你想要的:

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

其他人提到了github的官方中心包:

sudo apt-get install hub

or

brew install hub 

then

hub pull-request [-focp] [-b <BASE>] [-h <HEAD>]

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

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

我最近创建了一个工具,它完全是你想要的:

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

它在一个单一的命令中自动完成一切,分叉回购,推动PR等。它还支持更新PR,如果你需要编辑/修复它!

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

alias pr='open -n -a "Google Chrome" --args "https://github.com/user/repo/compare/pre-master...nawarkhede:$(git_current_branch)\?expand\=1"'