gpt4 book ai didi

Git 本地副本似乎丢失了整个历史记录

转载 作者:太空狗 更新时间:2023-10-29 14:20:21 25 4
gpt4 key购买 nike

如果我的术语有误,我深表歉意,我对 Git 经验不足。我有一个来自 github 仓库的本地仓库,在断电后,它现在显示

HEAD as 0000000000000000000000000000000000000000 

以及标记为添加的每个文件。 TortoiseGit 将 FETCH_HEAD 显示为我唯一的本地分支,即使我有多个分支和 master。远程分支似乎记得发生了什么——它有源的远程 URL 和最近分支的选择。

我真的很紧张,因为我有本地(非推送)更改而尝试做任何事情,以防它破坏一切。我可以查找此问题的特定术语吗?

我在 Windows 上使用 tortoise-git。我确实安装了 git 命令行,但除了最基本的知识外,我真的什么都不知道。

enter image description here

我应该补充一点,我未推送的更改很少 - 实际上是 2 个文件 - 因为我在中断前刚刚完成了推送。因此,如果恢复与远程仓库的同步比尝试恢复本地提交更容易,那么恢复同步就好了。

当我运行 git fsck 时,我得到:

error: Invalid HEAD error: unable to unpack 071bf20e651e1ac9ea91821ee947786138f79156 header error: inflateEnd: stream consistency error (no message) fatal: loose object 071bf20e651e1ac9ea91821ee947786138f79156 (stored in .git/obj ects/07/1bf20e651e1ac9ea91821ee947786138f79156) is corrupt

当我运行 git reflog 时,我得到:

fatal: bad default revision 'HEAD'

当我运行 git reset --hard 时失败了:

fatal: Failed to resolve 'HEAD' as a valid ref.

最佳答案

很可能您未推送的提交仍然存在,只是分支引用已丢失。

恢复它们的最佳方法如下:

  • 复制整个目录,你永远不知道
  • 运行 git fsck
  • 查看 reflog为你的最后一次提交。很有可能是最后一个分支提示
  • 在其上创建一个分支:git checkout -b laststate
  • 将未提交的文件保存在工作目录之外。
  • 硬重置到最后一个分支提示 SHA1 git reset --hard <sha1>
  • 放回未提交的更改

所以看到你的编辑,你的 repo 真的搞砸了。

HEAD 是无效的引用,现在你最后的机会是将它设置为 origin/master

git reset --hard origin/master

应该解决问题并让您的 HEAD 恢复原状。

关于Git 本地副本似乎丢失了整个历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15198281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com