如何处理 GitHub 上的第一个 Pull Request?

问题描述 投票:0回答:4

我对 Git 还比较陌生。到目前为止我的知识包括

git add push commit
。就是这样,到目前为止它对我来说已经足够好了。 :)

然而,今天早上有人向我发送了拉取请求,据我所知,这意味着有人分叉了我的存储库,做了一些调整,并标记我说:“嘿 Sergio,我做了一些改进。考虑将它们作为主分支。”

我说得对吗?

https://github.com/sergiotapia/CherryTomato/pulls

如果是这样,我如何轻松地将这些用户更改合并到存储库的主分支中?我需要触发什么命令?更重要的是,有人可以用外行术语解释这个过程会发生什么吗?

git github pull-request
4个回答
15
投票

你的想法是对的。如果这组更改看起来对您有用,那么您可能想将其合并到您的存储库中。

Github 提供了一个很好的响应拉取请求的指南:https://help.github.com/articles/using-pull-requests – 我会从这个开始,看看你是否对这个过程有任何更具体的问题.


7
投票

Github 提供了一个 Fork Queue 屏幕,允许您直接将更改拉入 Github 上的存储库中。此屏幕以绿色或粉色显示每个分叉提交,具体取决于它是否会干净地应用,并允许您在存储库中指定一个新分支以将更改合并到其中。 fork 队列的 URL 是 http://github.com///forkqueue

更新:使用以下步骤将拉取请求合并到您的主存储库中:

$ git checkout master
$ git remote add nakor git://github.com/nakor/CherryTomato.git
$ git fetch nakor
$ git merge nakor
$ git push origin master

改编自此处的 Github 文档:http://help.github.com/pull-requests/#merging_a_pull_request

或者,您可以使用新的“合并拉取请求”,这是今天添加到 Github 的新功能(!):https://github.com/blog/843-the-merge-button


3
投票

GitHub 拉取请求指南 中没有明确提及的一件事是如何将所述拉取请求应用于您的代码:
我希望合并这些更改:

  • 以快进的方式(即简单地将我的分支的
    HEAD
    移动到补丁的下一个 n 提交部分)
  • 或至少没有任何冲突(补丁仅修改/删除我本地未触及的行或添加新行)

如果有最轻微的冲突,最好拒绝补丁,要求发送者再次拉取你自己的代码,在他/她的存储库中本地解决任何冲突,并发出新的拉取请求。
那样:

  • 他们完成工作(“他们”是向您发送“拉取请求”的人,即补丁)
  • 你获利;)

0
投票

许多年后,出现了新的解决方案,如此页面所示。在本地 git 存储库中时,执行以下操作:

gh pr checkout PRID

其中

PRID
是拉取请求 (PR) 编号或 url(例如,第一个 PR 为“1”)。这会将 PR 中的代码作为新分支添加到本地存储库中。它使用 GitHub
cli 包
中的 gh 命令,并且仅适用于活跃的 PR。

如果没有该软件包和/或对于不活跃的 PR,您可以执行相同的操作:

git fetch origin pull/PRID/head:NewBranchName
git checkout NewBranchName

这会将

PRID
代码作为名为
NewBranchName
的新分支添加到您的本地存储库中。请注意,这不需要使用提交 PR 的用户的存储库,这意味着如果用户(的存储库)不再存在或无响应,它也可以工作。

您现在可以在本地检查、比较、测试和编辑新分支,例如将其与

master
合并。或者,您可以使用以下命令将新分支推送到 GitHub:

git push origin NewBranchName

这允许您从新分支创建新的 PR(以替换原始 PR)并对其进行审查和合并。

© www.soinside.com 2019 - 2024. All rights reserved.