我对 Git 还比较陌生。到目前为止我的知识包括
git add push commit
。就是这样,到目前为止它对我来说已经足够好了。 :)
然而,今天早上有人向我发送了拉取请求,据我所知,这意味着有人分叉了我的存储库,做了一些调整,并标记我说:“嘿 Sergio,我做了一些改进。考虑将它们作为主分支。”
我说得对吗?
https://github.com/sergiotapia/CherryTomato/pulls
如果是这样,我如何轻松地将这些用户更改合并到存储库的主分支中?我需要触发什么命令?更重要的是,有人可以用外行术语解释这个过程会发生什么吗?
你的想法是对的。如果这组更改看起来对您有用,那么您可能想将其合并到您的存储库中。
Github 提供了一个很好的响应拉取请求的指南:https://help.github.com/articles/using-pull-requests – 我会从这个开始,看看你是否对这个过程有任何更具体的问题.
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
GitHub 拉取请求指南 中没有明确提及的一件事是如何将所述拉取请求应用于您的代码:
我希望合并这些更改:
HEAD
移动到补丁的下一个 n 提交部分)如果有最轻微的冲突,最好拒绝补丁,要求发送者再次拉取你自己的代码,在他/她的存储库中本地解决任何冲突,并发出新的拉取请求。
那样:
许多年后,出现了新的解决方案,如此页面所示。在本地 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)并对其进行审查和合并。