如何通过某个Pull请求更新我的本地Forked Github项目到主项目?

时间:2015-01-26 17:16:53

标签: git github

我分叉了一个项目并将其克隆到我的电脑上。我找到了一个主要项目的拉取请求,其中包含有用的东西。如何使用当前未与主项目合并的特定拉取请求更新我的fork和本地副本?

我在github中有点新意,因此请注意我的意思是建议但未合并主要项目的更改通过" pull request"。

1 个答案:

答案 0 :(得分:0)

鉴于您的最新评论:

  

感谢您的尝试,但这不是我的问题的确切答案。   就我而言,我不想获得上游回购的最新更新。一世   只想获得当前不存在的某个提交的更新   由主项目合并

我的答案是针对特定的提交,但由于你的原始问题提到了一个拉取请求(这意味着一个分支),我也会给出一个解决方案。

如何从远程仓库获取单个提交

假设你有一个你分叉的repo的本地克隆,如果你键入以下内容,你应该得到一个来源:

> git show remote
origin

除非您已添加原始回购地点,否则您无法访问要在本地进行回复的提交。所以我们需要补充一点,让我们假设这个回购是https://github.com/GitbookIO/gitbook.git。请注意,这是一个HTTPS克隆URL,因为您无法对此repo具有写入权限。我们将其命名为original_repo:

> git remote add original_repo https://github.com/GitbookIO/gitbook.git

现在让我们回复所有裁判:

> git fetch origina_repo

此时您已经拥有了本地所需的一切,您只需要将提交合并到您的某个分支机构中,让我们假设您的本地主人。

找到要合并的提交。这意味着在团队使用的一个分支中找到它。可能已经合并到master,或者你可以从用于pull请求的分支中获取它。无论哪种方式,只需运行一系列git log来检查您想要的提交,如果您不知道该引用。当您只是转到要将提交合并到的分支并运行:

> git cherry-pick COMMIT_ID

这将使提交到您目前的任何分支。

如何合并远程仓库中的分支

这一步骤的唯一区别在于,不是做樱桃选择,而是进行合并。因此,想象拉取请求的内容位于名为so-pr的分支中,您只需执行:

> git merge original_repo/so-pr

这会将so-pr的内容合并到您的工作分支中。