如何创建和/或向GitHub上托管的其他存储库发送拉取请求?
答案 0 :(得分:228)
(除了官方的“GitHub Help 'Using pull requests' page”,
另请参阅“Forking vs. Branching in GitHub”,“What is the difference between origin and upstream in GitHub”)
假设你有第一个 forked a repo ,那么你应该在你拥有的那个分支中做些什么:
master
创建拉取请求,您可能会想要一次累积并混合几个修改。origin/master
之上重新定位它(确保您的补丁仍然有效)将更新拉取请求自动(不需要点击任何东西)git remote prune origin
)。 GitHub GUI将建议您在拉取请求页面中删除您的分支。注意:要编写 Pull-Request本身,请参阅“How to write the perfect pull request”(2015年1月,GitHub)
2016年3月:新的PR合并按钮选项:请参阅“Github squash commits from web interface on pull request after review comments?”。
repo的维护者可以选择merge --squash
那些PR提交。
关于最后一点,自2013年4月10日起,“ Redesigned merge button ”,您的分支将被删除:
合并后删除分支也已简化 我们不会通过额外步骤确认删除,而是在删除分支时立即删除该分支,并提供方便的链接以便在您再次需要时恢复分支。
确认合并拉取请求后删除分支的最佳做法。
拉取请求不是官方的“git”术语
Git使用request-pull
(!) command 来构建合并请求:
它“总结了两次提交到标准输出之间的变化,并在生成的摘要中包含给定的URL。”
Github发布了自己的版本since day one (February 2008),但是redesigned that feature in May 2010,声明:
Pull Request = Compare View + Issues + Commit comments
<humour>
GitHub甚至没有正确定义(拉取请求)!
幸运的是,一个真正的商业新闻机构会知道,并且有一个e-note in order to replace pull-replace by 'e-note':
因此,如果您的回购 o 保守需要电子记录...... ask Fox Business 。他们是知情人。
</humour>
答案 1 :(得分:196)
要了解如何发出拉取请求,我只需要在Github上关注两个单独的帮助页面(下面链接为子弹点)。以下命令行命令适用于第1部分。 第2部分,实际的拉取请求,完全在Github的网站上完成。
$ git clone https://github.com/tim-peterson/dwolla-php.git
$ cd dwolla-php
$ git remote add upstream https://github.com/Dwolla/dwolla-php.git
$ git fetch upstream
// make your changes to this newly cloned, local repo
$ git add .
$ git commit -m '1st commit to dwolla'
$ git push origin master
第1部分:分叉某人的回购:https://help.github.com/articles/fork-a-repo
git clone->cd dwolla-php->git remote->git fetch
序列,在您的计算机某处克隆您的前叉(即“复制/粘贴”它,在本例中为third_party TimPeterson$
)并将其与主仓库同步(Dwolla / dwolla-PHP)git add->git commit->git push
序列以将您的更改推送到远程仓库,即您在Github上的分叉(tim-peterson / dwolla-php)第2部分:制作拉取请求:https://help.github.com/articles/using-pull-requests
答案 2 :(得分:68)
要发出拉取请求,您需要执行以下步骤:
我花了一段时间才想到这一点,希望这会对某人有所帮助。
答案 3 :(得分:13)
我已经启动了一个项目来帮助人们制作他们的第一个GitHub拉取请求。您可以参加make your first PR here
的动手教程工作流程很简单
git clone <clone url you copied earlier>
git checkout -b branch-name
git commit
git push origin branch-name
Compare and pull request
按钮答案 4 :(得分:11)
对于我们这些拥有github.com帐户的人,但只是在我们在命令行中输入“git”时才会收到一条令人讨厌的错误消息,以下是如何在浏览器中完成所有操作:)
答案 5 :(得分:3)
我按照蒂姆彼得森的指示,但我为我的更改创建了一个本地分支。然而,推后我没有在GitHub看到新的分支。解决方案是在push命令中添加-u:
git push -u origin <branch>
答案 6 :(得分:1)
我编写了一个bash程序,该程序可以为您建立PR分支的所有工作。它会在需要时执行派生,与上游同步,设置上游远程设备等,您只需要提交您的修改,推送并提交PR。
运行方式如下:
github-make-pr-branch ssh your-github-username orig_repo_user orig_repo_name new-feature
您会找到程序here,并且它的存储库还包含逐步指南,如果您想了解它是如何工作的,请手动执行相同的过程,以及有关如何保存的更多信息。您的功能部件将使用上游主设备和其他有用的花絮进行最新的分支。
答案 7 :(得分:0)
最简单的GitHub Pull Request 是从Web界面 ,而不使用git。
点击铅笔图标
在位置附近搜索文字,进行所需的任何编辑,然后预览以确认。为建议的更改提供最多50个字符的描述以及可选的扩展描述,然后单击建议更改文件按钮。
如果您正在阅读本文,那么您将无权访问存储库(项目文件夹),因此GitHub将在您的帐户中创建存储库的副本(实际上是分支)。点击创建请求请求按钮。