【问题标题】:Updating forked GitHub repo to match original's latest code and commits更新分叉的 GitHub 存储库以匹配原始的最新代码和提交
【发布时间】:2013-09-20 10:08:03
【问题描述】:

我几天前 fork 一个 GitHub 项目,从它的问题中,我可以看到 master 分支从那以后进行了一些修改。

当我 cd 到我的这个项目的位置目录并使用 git pull 时,它说,“已经是最新的”。为什么?

如何更新我的 fork 以包含来自原始 repo 的提交?

【问题讨论】:

标签: github fork git-pull


【解决方案1】:

当您派生一个存储库时,原始存储库的副本会在您的 GitHub 帐户上建立。这允许对“副本”进行读写访问。

当原始存储库资源具有对您的副本有益的提交时,请按照以下步骤更新您的 fork 的主分支。您可以更新其他分支,但典型的工作流程是针对原始存储库更新 master

  1. 打开终端
  2. cd 到你的项目目录
  3. git remote add upstream <url-of-original-repository>
  4. git branch 并确认您在 master 分支上
  5. git pull --rebase upstream master

第 5 步将获取“原始”存储库的所有新提交,将它们从最后一个 merge-base 应用到 master 分支,然后在“顶部”包含您分支的所有提交。

任何时候您需要再次更新您的 fork,只需运行第 5 步中的命令即可。

【讨论】:

  • 另一个问题,在我修改了一些代码之后,根据github教程,我使用“git push origin master”将修改推送到我的分叉项目。之后,我拉请求,github说:“没有什么可以比较的。nferraz:master 与 VicoWu:master 的所有提交都是最新的。尝试切换基础进行比较。”我的推送好像没有效果。为什么会这样?
  • Push 将您的本地提交推送到您的远程存储库(即 github)。如果这些是自上次拉取以来对远程存储库的唯一提交,则没有什么可拉取的,因为您已经有了提交。 :)
猜你喜欢
  • 2011-04-23
  • 1970-01-01
  • 2015-05-21
  • 2013-04-18
  • 2019-01-13
  • 2013-10-10
  • 2013-03-16
  • 2012-10-05
相关资源
最近更新 更多