似乎您必须与 github.com 交互才能发起拉取请求。是这样吗?
11 回答
更新:hub命令现在是一个官方 github 项目,还支持创建拉取请求
原件:
添加到集线器命令似乎特别有用:http: //github.com/defunkt/hub或 github gem:http: //github.com/defunkt/github-gem
我建议向那些要求它的项目提出问题。github的家伙反应灵敏。
Git 现在附带一个子命令'git request-pull' [-p] <start> <url> [<end>]
您可以在此处查看文档
您可能会发现这很有用,但它与 GitHub 的功能并不完全相同。
使用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.
注意:
Some of this answer is now outdated.
(2022-01-27)
(例如使用 gh Gem。)
目前唯一能够做到这一点的工具是hub
和gh
。
一个男人搜索...
man git | grep pull | grep request
给
git request-pull <start> <url> [<end>]
但是,尽管有名字,但它不是你想要的。根据文档:
生成一个请求,要求您的上游项目将更改拉入他们的树中。打印到标准输出的请求以分支描述开始,总结了更改并指出可以从哪里提取它们。
@HolgerJust提到了满足您需求的 github gem:
sudo gem install gh
gh pull-request [user] [branch]
其他人提到了hub
github的官方包:
sudo apt-get install hub
或者
brew install hub
然后
hub pull-request [-focp] [-b <BASE>] [-h <HEAD>]
除了充当 Git 的代理github/hub
之外,您现在(2020 年 2 月)还拥有:cli/cli
请参阅“增强您的命令行体验:GitHub CLI 现在处于测试阶段”
创建拉取请求
创建一个分支,进行多次提交以修复问题中描述的错误,并使用 gh 创建拉取请求以分享您的贡献。
通过使用 GitHub CLI 创建拉取请求,它还会在您还没有分支时自动创建一个分支,它会推送您的分支并创建您的拉取请求以合并您的更改。
2020 年 4 月:“ GitHub CLI 现在支持自动填充拉取请求和自定义配置”
GitHub CLI 0.7 已经发布,根据我们的 beta 用户提供的反馈,我们提供了一些要求最高的增强功能。
自上一个次要版本 0.6 以来,有三个主要功能:
- 配置
gh
为将您的首选编辑器与gh config set editor [editor]
.- 配置
gh
为默认使用 SSHgh config set git_protocol ssh
。
默认的 Git 协议是 HTTPS。- 使用 .自动填充来自提交的拉取请求的标题和正文
gh pr create --fill
。
所以:
gh pr create --fill
我正在使用简单的别名来创建拉取请求,
alias pr='open -n -a "Google Chrome" --args "https://github.com/user/repo/compare/pre-master...nawarkhede:$(git_current_branch)\?expand\=1"'
我最终制作了自己的,我发现它在周围的其他解决方案中效果更好。
我最近创建了一个工具,它完全符合您的要求:
https://github.com/jd/git-pull-request
它在单个命令中自动执行所有操作,分叉 repo,推送 PR 等。如果您需要编辑/修复它,它还支持更新 PR!
我以前用过这个工具——虽然看起来需要先打开一个问题,但如果你使用 github 问题跟踪,它非常有用并且真正简化了工作流程。git open-pull 然后从您所在或选择的任何分支提交拉取请求。 https://github.com/jehiah/git-open-pull
编辑:看起来你可以即时创建问题,所以这个工具是一个很好的解决方案。
是的。您可以安装集线器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