我应该如何更新过时的分叉?

时间:2013-12-19 15:27:29

标签: git github

几个月前,我分叉了一个存储库,进行了更改并提交了一个pull请求,最终被接受为master。从那以后,我的硬盘上的代码一直没有动过。现在,我想再次为同一个存储库做贡献。我的fork中的代码与master不同步,因为它的更改从未被提取到master中,并且因为master已经继续运行。我应该删除我的分叉并重新编译,还是有更好的方法?

我以为可能以前曾经问过这个问题。在搜索时,我发现Pull new updates from original GitHub repository into forked GitHub repository,但该问题中的StackOverflower想要保留本地更改,而我想丢弃所有本地更改并采取当前处于主控状态的任何内容。

2 个答案:

答案 0 :(得分:8)

如果您的分叉中没有任何内容可以保留,则删除和重新分叉肯定是一种选择。如果您不想这样做,还有很多其他方法可以更新您的回购。

如果你还没有,我可能会首先将上游回购添加为远程回购。这样做:

git remote add upstream <clone-url>

然后,从上游远程获取所有更改:

git fetch upstream

现在,您可以使用新获取的提交执行任何操作。例如,要将本地主分支重置为上游存储库中的分支,请运行以下命令:

git checkout master
git reset --hard upstream/master

您可以将此更改推送到您的GitHub分支,如下所示:

git push --force origin master

有关使用遥控器的更多信息,我建议本章使用Pro Git书中的遥控器:2.5 Git Basics - Working with Remotes

答案 1 :(得分:0)

在 GitHub 上,有一项新功能 - 您只需单击一下即可完成所有这些操作。

以下是如何在 2021 年更新过时的分叉......

  1. 转到您在 GitHub 上的 GitHub fork 存储库
  2. 找到“获取上游”按钮/菜单
  3. 点击“获取并合并”——我们就完成了

谢谢你,GitHub 的这个。超级好用。我写了一个 quick tip: Update an outdated fork on GitHub with a click,它也包含一个 video explanation

Update fork GIF