Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git丢失提交_Git - Fatal编程技术网

Git丢失提交

Git丢失提交,git,Git,我试图修复git中的一个问题,但意外地使用了git重置——很难在以前提交。所以现在我再也回不到老脑袋了 然而,在我克隆存储库之前,我确实克隆了它,因此我将丢失的提交推回到了原始版本。这在昨天似乎奏效了,但今天我看到原来的承诺仍然停留在旧的承诺上,而新的承诺似乎不存在。 再次尝试从克隆中推送新提交不会起作用,因为git告诉我一切都是最新的 如何修复此问题?在git重置后,您不需要从另一个回购中推送任何东西--硬的 应该允许您定位丢失的提交(实际上未被引用,但在您的Git回购中仍然存在,默认情况下直

我试图修复git中的一个问题,但意外地使用了git重置——很难在以前提交。所以现在我再也回不到老脑袋了

然而,在我克隆存储库之前,我确实克隆了它,因此我将丢失的提交推回到了原始版本。这在昨天似乎奏效了,但今天我看到原来的承诺仍然停留在旧的承诺上,而新的承诺似乎不存在。 再次尝试从克隆中推送新提交不会起作用,因为git告诉我一切都是最新的


如何修复此问题?

在git重置后,您不需要从另一个回购中推送任何东西--硬的

应该允许您定位丢失的提交(实际上未被引用,但在您的Git回购中仍然存在,默认情况下直到90天:请参阅。即使您真的需要,您也可以这样做)。

请参阅例如或示例。

尝试键入
git fetch
以获取更新的存储库

以将您的头放回正确的位置:

  • 获取HEAD最近在哪里的列表
  • 找到你想要你的头所在的地方
  • 一旦你找到了你想要的承诺,让你的主人回到正确的位置
  • 一些解释:在一个
    git
    commit中,没有任何东西将一个commit指向它之后发生的一个commit。重置头部时,将其指向较旧的提交。你以前的头现在晃来晃去,没有任何东西指向它


    我们使用
    reflog
    查看HEAD最近在哪里。一旦它被放回你想要的地方,你就可以把大师或其他人的分支指向那个地方,一切都会好起来的

    我做的有点不同。我确实

    git reflog
    3bd79d2 HEAD@{2}: checkout: moving from edbfb06528c43586a0e0e10a73051e06980b9281 to master
    edbfb06 HEAD@{3}: commit: added general comments for rubric
    f8ca172 HEAD@{4}: checkout: moving from 904d63bf08f6f6b1494bfa473b158b9509b18423 to 
    904d63b HEAD@{10}: commit: updated results page and csv
    933f2a6 HEAD@{11}: commit: updates
    f56e6cd HEAD@{12}: clone: from git@heroku.com:xxxx.git
    
    …在这种情况下,我的“为标题添加了一般性评论”是我失去的承诺。现在我有了提交ID我用cherry pick取回了它

    git cherry-pick edbfb06
    

    git cherry选择sha1的