【问题标题】:How do I get back to my earlier commits after fixing a forgotten fork? [duplicate]修复被遗忘的分叉后,如何恢复之前的提交? [复制]
【发布时间】:2016-04-19 00:43:18
【问题描述】:

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

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

我确定它就在某个地方,因为 git 永远不会忘记任何东西,但我不知道如何找到它。救命!

【问题讨论】:

  • 这有帮助(特别是 git reflog),但它仍然无法像以前那样工作。尽管如此,至少它不是 nokogiri,所以我已经从正在运行的提交中创建了一个新分支,我将看看是否修改数据库可以解决这个问题。
  • 不,不是数据库,而是我开始的工作。一旦我评论了这一点,我又回到了以前的位置。谢谢!

标签: git git-fork


【解决方案1】:

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

假设这个sha是ABCDE。

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

现在,让我们重新处理您的 repo,以便您分叉时清楚:

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

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

git diff master..myFork

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

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

【讨论】:

    猜你喜欢
    • 2020-04-29
    • 2010-12-25
    • 2014-04-13
    • 2011-11-07
    • 2013-04-28
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多