在修复了一个被遗忘的分叉后,我如何返回到我之前的提交?

How do I get back to my earlier commits after fixing a forgotten fork?

我正在阅读 Rspec 这本书,但在开始工作之前忘记创建示例存储库。我查看了如何修复该问题并按照 forgot to do a fork on GitHub before starting my work 中的说明进行操作。然而,在这个过程中,我取消了所有的环境设置,现在我收到了一堆关于 nokogiri 的错误。

我之前处理过旧版本的 nokogiri 并排除故障 可能需要很长时间,所以我想回到原来的位置。问题是 "git log" 只告诉我关于我分叉的存储库的 git 历史,而不是我过去几天所做的工作。

我确定它就在某处,因为 git 永远不会忘记任何东西,但我不知道如何找到它。求助!

转到原始存储库并获取其主分支的 SHA(假设这​​是您分叉的位置)。

假设这个sha是ABCDE

在我们进行更改之前,请确保您有一个干净的工作目录和索引,因此在需要时提交,然后 运行 git status 以确保一切都是干净的。

现在,让我们re-work你的回购,这样你分叉的时候就很清楚了:

git branch myFork
git checkout master
git reset --hard ABCDE
git checkout myFork

现在,您可以将 myFork 分支与 master 分支进行比较,以查看差异。例如你可以这样做:

git diff master..myFork

在您工作时,每当您达到某种稳定点时,经常提交是一个非常好的主意。通过这种方式,您可以跟踪小的里程碑并在遇到困难时恢复。

不要担心提交太多...您总是可以在将提交推送到 public 存储库之前将它们压缩在一起。