如何创建和/或发送拉取请求到GitHub上托管的另一个存储库?
(除了官方的“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
之上重新设置它(确保你的补丁仍在工作)将自动更新pull请求(不需要点击任何东西)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?”。
回购的维护者可以选择merge --squash
那些PR提交。
关于最后一点,自2013年4月10日起,“Redesigned merge button”,该分支机构将被删除:
合并后删除分支也已简化。 我们不会通过额外步骤确认删除,而是在删除分支时立即删除分支,并提供方便的链接以便在您再次需要时恢复分支。
这证实了合并拉取请求后删除分支的最佳实践。
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':
因此,如果您的存储库需要电子笔记... qazxsw poi。他们知道。
为了学习如何发出拉取请求,我只是在Github上关注了两个单独的帮助页面(下面链接为子弹点)。以下命令行命令适用于第1部分。第2部分是实际的拉取请求,完全在Github的网站上完成。
</humour>
$ 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
点击你要贡献的回购中的'fork'按钮,在这种情况下:https://help.github.com/articles/fork-a-repo(Dwolla / dwolla-php)
获取新创建的fork的URL,在本例中为:Dwolla's PHP repo(tim-peterson / dwolla-php)
键入上面的https://github.com/tim-peterson/dwolla-php.git序列,在你的计算机某处克隆你的fork(即“复制/粘贴”它,在这种情况下:git clone->cd dwolla-php->git remote->git fetch
)并与主repo同步(Dwolla / dwolla-php)
对您当地的仓库进行更改
键入上面的third_party TimPeterson$
序列将您的更改推送到远程仓库,即您在Github上的分叉(tim-peterson / dwolla-php)git add->git commit->git push
转到Github上的fork的网页(https://help.github.com/articles/using-pull-requests)
点击“拉取请求”按钮
给pull-request一个名字,填写你所做的更改的详细信息,点击提交按钮。
你完成了!!要发出拉取请求,您需要执行以下步骤:
我花了一段时间才想到这一点,希望这会对某人有所帮助。
我已经启动了一个项目来帮助人们制作他们的第一个GitHub拉取请求。你可以为https://github.com/tim-peterson/dwolla-php做实践教程
工作流程很简单
git clone <clone url you copied earlier>
的变化做一个分支git checkout -b branch-name
git commit
上将您的更改推送到您的分支git push origin branch-name
按钮对于我们这些拥有github.com帐户但只在我们在命令行中输入“git”时收到一条令人讨厌的错误消息的人,这里是如何在浏览器中完成所有操作:)
我写了一个bash程序,它完成了为你设置公关分支的所有工作。它根据需要执行分叉,与上游同步,设置上游远程等等,您只需提交修改,推送并提交PR。
以下是您运行它的方式:
git push -u origin <branch>
你会发现程序github-make-pr-branch ssh your-github-username orig_repo_user orig_repo_name new-feature
及其存储库还包括一个分步指南,如果你想了解它是如何工作的,手动执行相同的过程,以及有关如何使你的功能分支保持最新的额外信息与上游主数据和其他有用花絮的日期。