如何做一个GitHub拉请求

如何创build和/或发送拉请求到GitHub上托pipe的另一个存储库?

(除了官方的“ GitHub帮助”使用pull请求页面 “,
另请参见“ GitHub中的分叉与分支 ”,“ GitHub中的 起源与上游之间的区别 ”)

夫妇提示拉请求:

假设你首先分叉了一个回购 ,那么你应该在你所拥有的那个分叉中做什么:

  • 创build一个分支 :隔离你的修改分支。 不要从master那里创build一个拉取请求,在那里你可能会试图积累和一次混合几个修改。
  • 重新分支 :即使你已经从该分支做了一个pull请求,在origin/master (确保你的补丁还在工作)上重新绑定它,会自动更新pull请求(不需要点击任何东西)
  • 更新该分支 :如果您的请求被拒绝,您只需添加新的提交和/或完全重做您的历史logging:它将再次激活您的现有请求。
  • “关注”这个分支 :即使其主题“紧”,不要修改成千上万个类和所有的应用程序,只添加或修复一个明确定义的function, 保持变化很小
  • 删除那个分支 :一旦被接受,你可以安全地删除你的分支上的那个分支(和git remote prune origin )。 GitHub的graphics用户界面会build议你在你的拉取请求页面中删除你的分支。

注意:要编写 Pull-Request本身,请参阅“ 如何编写完美的请求 ”(2015年1月,GitHub)


2016年3月:新的公关合并button选项:请参阅“ Github的压缩提交请求后从网页界面提交请求评论? ”。

壁球

回购的维护者可以select合并 – 取得这些PR提交。


合并请求后

关于最后一点,从2013年4月10日起,“ 重新devise合并button ”,分支会被删除:

新的合并按钮

合并后删除分支也被简化了。
除了用额外的步骤确认删除,我们立即删除分支时,删除它,并提供一个方便的链接,以恢复分支在你需要的事件再次

这证实了在合并拉取请求之后删除分支的最佳实践。


拉请求与请求拉

  • 拉请求不是官方的“混帐”条款。
    Git使用request-pull (!)命令构build一个合并请求:
    它“总结了两次提交到标准输出的变化,并在生成的摘要中包含给定的URL。”
    Github 从第一天(2008年2月)开始发布自己的版本,但在2010年5月重新devise了该function ,指出:

     Pull Request = Compare View + Issues + Commit comments 

电子备注“reposotory”(原文如此)

<humour>

那(pull request)甚至没有被GitHub正确定义!

幸运的是,一个真正的商业新闻机构会知道,并且有一个电子笔记,以取代“电子笔记”的取代 :

https://pbs.twimg.com/media/BT_5S-TCcAA-EF2.jpg:large

所以,如果你的回购需要一个电子笔记… 问福克斯商业 。 他们是知道的。

</humour>

要了解如何提出拉取请求,我只需在Github上跟随两个单独的帮助页面(以下链接为bullet点)。 以下命令行命令用于第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

    1. 点击你想贡献的repo上的'fork'button,在这种情况下: Dwolla的PHP repo (Dwolla / dwolla-php)
    2. 获取新创build的分支的URL,在这种情况下: https : //github.com/tim-peterson/dwolla-php.git (tim-peterson / dwolla-php)
    3. 键入git clone->cd dwolla-php->git remote->git fetch序列克隆你的电脑在你的计算机的某个地方(即“复制/粘贴”到这种情况下: third_party TimPeterson$ )并同步它与主回购(Dwolla / dwolla-php)
    4. 对您当地的回购进行更改
    5. 键入上面的git add->git commit->git push sequence将你的改变推送到远程的repo,也就是你在Github上的fork(tim-peterson / dwolla-php)
  • 第2部分 :提出请求: https : //help.github.com/articles/using-pull-requests

    1. 去Github上你的fork的网页( https://github.com/tim-peterson/dwolla-php
    2. 点击“拉请求”button
    3. 给拉请求一个名字,填写你做了什么更改的详细信息,点击提交button。
    4. 你完成了!!

为了提出拉取请求,您需要执行以下步骤:

  1. 分叉一个仓库(你想要提出一个请求)。 只需点击仓库页面上的forkbutton,你将有一个单独的github仓库,前面有你的github用户名。
  2. 将存储库克隆到本地计算机。 您安装在本地机器上的Github软件可以为您做到这一点。 单击存储库名称旁边的克隆button。
  3. 对文件进行本地更改/提交
  4. 同步更改
  5. 去你的github分叉存储库,并点击分支button旁边的“比较和审查”绿色button。 (button有图标 – 没有文字)
  6. 一个新的页面将打开显示您的更改,然后单击拉请求链接,将请求发送到您分叉的存储库的原始所有者。

我花了一段时间才想到这一点,希望这会帮助别人。

对于我们这些拥有github.com账户的人,当我们在命令行中input“git”时,只会得到一个令人讨厌的错误消息,下面是如何在浏览器中完成这一切的:)

  1. 同Tim一样,Farhan写道:把自己的项目拷贝到: 第1步:叉
  2. 几秒钟后,您将被redirect到您自己的项目副本: 第2步
  3. 导航到您需要更改的文件,然后单击工具栏中的“编辑此文件”: 第3步:编辑文件
  4. 编辑完成后,写一些描述变化的单词,然后写下“提交变更”,就像主分支一样(因为这只是你自己的副本而不是“主”项目)。 第4步:提交更改
  5. 对需要编辑的所有文件重复步骤3和4,然后返回到项目副本的根目录。 在那里,点击绿色的“比较,审查…”button: 第5步:开始提交
  6. 最后,点击“Create pull request”,然后再次检查您的请求的标题和说明,然后再次 “Create pull request” 在这里输入图像描述

我已经开始了一个项目来帮助人们做出第一个GitHub拉取请求。 你可以做动手教程, 在这里做你的第一个公关

工作stream程很简单

  • 叉在github回购
  • 点击克隆回购button获取克隆url
  • 转到terminal并运行git clone <clone url you copied earlier>
  • 为你正在做的改变做一个分支git checkout -b branch-name
  • 进行必要的更改
  • 提交你的修改git commit
  • 把你的改变推到GitHub git push origin branch-name fork上
  • 去GitHub上的叉子看到Compare and pull requestbutton
  • 点击它,并提供必要的细节

我遵循蒂姆彼得森的指示,但我为我的更改创build了一个本地分支。 然而,推后,我没有看到GitHub中的新分支。 解决方法是在push命令中添加-u:

 git push -u origin <branch>