强制GitHub分叉匹配原始repo的当前内容?

时间:2013-11-20 00:22:14

标签: github fork rebase

我无法强迫我的GitHub仓库的叉子成为原始(主)仓库的完整副本。我的叉子发散了,我想把它带回原来的状态。但是,我发现解决主题的堆栈溢出帖对我不起作用。例如,这两个:

Completely replace Fork with origin (github)

Updating forked GitHub repo to match original's latest code and commits

我已经将“upstream”设置为指向原始repo的master分支。但是,获取更新然后合并,或使用上面两个SO帖子中找到的任何rebase命令变体对我来说都不起作用。我仍然看到我的repo文件的最新版本。相反,我希望在master repo的master分支中看到它们存在的状态下的文件版本。我没有。

我可能做错了什么?是不是因为我在之后尝试了rebase选项我使用了“git fetch upstream”命令后跟“git merge upstream / master”命令,然后将一些更改推送到 my fork的主分支?注意,我不关心我做过的任何新的更改,因为master repo的master分支具有我之前的所有重要更改。我只需要一个简单的GitHub命令系列来强制我的fork匹配原始repo的主分支。

来自以下SO帖子:

How to force GitHub Fork (origin) to take Repository (upstream) version

我试过了:

git reset --hard cb2a1828f0cbd02179849035c0adae8a7426b3f0

其中cb2a1828f0cbd02179849035c0adae8a7426b3f0是主仓库主分支中的最新提交ID。但是我收到了以下错误:

fatal: Could not parse object 'cb2a1828f0cbd02179849035c0adae8a7426b3f0'.
顺便说一句,我知道我本应该使用我的主分支机构,然后只使用我的主分支从主仓库的主机获取更新。我将来会这样做。现在,我只需要解决这个问题。

1 个答案:

答案 0 :(得分:1)

最简单的方法是:

  • 在GitHub上删除你的分支
  • 重新分叉
  • 在本地克隆

如果您的前任本地克隆正在进行一些工作,您可以:

  • 将您的第一个本地克隆添加为新本地克隆的远程
  • 将一些提交提取/合并到当前的本地克隆