如何通过对主项目的某个 Pull 请求更新本地 Forked Github 项目?
How can I update my local Forked Github project by a certain Pull request to main project?
我 fork 了某个项目并将其克隆到我的 PC 上。我找到了一个对主要项目的拉取请求,其中包括对我有用的东西。我如何使用当前未与主项目合并的特定拉取请求更新我的分支和本地副本?
我对 github 有点陌生,因此请注意,我的意思是 "pull request" 对主要项目提出但未合并的更改。
鉴于您的最新评论:
Thanks for the attempt but this is not an exact answer to my question.
In my case I don't want to get latest updates of the upstream repo. I
just want to get updates of a certain commit that is not presently
merged by the main project
我的回答将针对特定的提交,但由于您最初的问题提到了拉取请求(这意味着一个分支),我也会为此提供一个解决方案。
如何从远程仓库获取单个提交
假设你有一个你分叉的回购的本地克隆,如果你输入以下内容你应该得到一个单一的来源:
> git show remote
origin
除非您添加了原始仓库位置,否则您将无法访问要选择到本地仓库中的提交。所以我们需要补充一点,让我们假设这个 repo 是 https://github.com/GitbookIO/gitbook.git。请注意,这是一个 HTTPS 克隆 URL,因为您没有对此存储库的写入权限。我们将其命名为 original_repo:
> git remote add original_repo https://github.com/GitbookIO/gitbook.git
现在让我们取回所有 refs:
> git fetch origina_repo
此时你在本地拥有所有你需要的,你只需要将提交合并到你的分支之一,让我们假设你是本地主人。
找到您要合并的提交。这意味着在团队使用的分支之一中找到它。可能已经合并到 master 中,或者您可以从用于拉取请求的分支中获取它。无论哪种方式,只需 运行 一系列 git log
来检查您想要的提交,如果您不知道参考。当您只需转到要将提交合并到的分支和 运行:
> git cherry-pick COMMIT_ID
这会将提交带到您当前所在的任何分支。
如何从远程仓库合并分支
此步骤的唯一区别在于,您将进行合并,而不是进行挑选。因此,假设拉取请求的内容位于名为 so-pr
的分支中,您只需执行:
> git merge original_repo/so-pr
这会将 so-pr
的内容合并到您的工作分支中。
我 fork 了某个项目并将其克隆到我的 PC 上。我找到了一个对主要项目的拉取请求,其中包括对我有用的东西。我如何使用当前未与主项目合并的特定拉取请求更新我的分支和本地副本?
我对 github 有点陌生,因此请注意,我的意思是 "pull request" 对主要项目提出但未合并的更改。
鉴于您的最新评论:
Thanks for the attempt but this is not an exact answer to my question. In my case I don't want to get latest updates of the upstream repo. I just want to get updates of a certain commit that is not presently merged by the main project
我的回答将针对特定的提交,但由于您最初的问题提到了拉取请求(这意味着一个分支),我也会为此提供一个解决方案。
如何从远程仓库获取单个提交
假设你有一个你分叉的回购的本地克隆,如果你输入以下内容你应该得到一个单一的来源:
> git show remote
origin
除非您添加了原始仓库位置,否则您将无法访问要选择到本地仓库中的提交。所以我们需要补充一点,让我们假设这个 repo 是 https://github.com/GitbookIO/gitbook.git。请注意,这是一个 HTTPS 克隆 URL,因为您没有对此存储库的写入权限。我们将其命名为 original_repo:
> git remote add original_repo https://github.com/GitbookIO/gitbook.git
现在让我们取回所有 refs:
> git fetch origina_repo
此时你在本地拥有所有你需要的,你只需要将提交合并到你的分支之一,让我们假设你是本地主人。
找到您要合并的提交。这意味着在团队使用的分支之一中找到它。可能已经合并到 master 中,或者您可以从用于拉取请求的分支中获取它。无论哪种方式,只需 运行 一系列 git log
来检查您想要的提交,如果您不知道参考。当您只需转到要将提交合并到的分支和 运行:
> git cherry-pick COMMIT_ID
这会将提交带到您当前所在的任何分支。
如何从远程仓库合并分支
此步骤的唯一区别在于,您将进行合并,而不是进行挑选。因此,假设拉取请求的内容位于名为 so-pr
的分支中,您只需执行:
> git merge original_repo/so-pr
这会将 so-pr
的内容合并到您的工作分支中。