在修复了一个被遗忘的分叉后,我如何返回到我之前的提交?
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 存储库之前将它们压缩在一起。
我正在阅读 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 存储库之前将它们压缩在一起。