git reset --hard 错误:无法解析对象

Posted

技术标签:

【中文标题】git reset --hard 错误:无法解析对象【英文标题】:git reset --hard error: Could not parse object 【发布时间】:2014-11-12 02:02:28 【问题描述】:

这不是我第一次对我的 repo 进行硬重置,但这一次,我遇到了错误。我正在开发一个 ios 项目。我正在从终端进行重置。如何修复致命错误

fatal: Could not parse object 'e88056ac5d58fb0bbd23d3fe929eac01712d964'

【问题讨论】:

你到底运行了什么命令?只是git reset --hard? 您最初执行的哪些步骤导致您的 repo 进入不愉快的状态? 只是git reset --hard。我是唯一一个在我的仓库工作的人,但我正在使用两台电脑。自从我使用其中一台计算机已经有一段时间了,所以我知道它已经过时了。就是这样。 git cat-file -t e88056ac5d58fb0bbd23d3fe929eac01712d964git rev-parse HEADgit ls-tree HEAD 返回什么? 你试过 git gc 来清理 git repo 吗? 【参考方案1】:

对我来说,问题在于我需要在本地机器上提取最新版本的分支、合并和提交。然后git reset --hard hash 在我运行命令的服务器上工作。

【讨论】:

你的意思是git reset --hard hash @SolomonUcko 谢谢!我修好了。【参考方案2】:

我有同样的问题并已修复。

当发生强制推送等更改时会出现此问题 在 Gemfile 中引用的 git repo。

解决方案是在 Gemfile 中注释该 gem 行,运行 bundle, 取消注释并再次捆绑。然后 Gemfile.lock 将引用一个 有效的 git 版本。

在此链接中找到https://semaphoreci.com/docs/fail-could-not-parse-object.html

【讨论】:

【参考方案3】:

可能你应该先将代码推送到远程目录,然后执行命令,

git reset --hard <commit_id>

终于修复了这个bug。

【讨论】:

【参考方案4】:

尝试使用

更新您的本地存储库
git fetch

【讨论】:

【参考方案5】:

如果你有一个 git 浅克隆(使用命令克隆:git clone --depth=1 git@github.com:foo/bar.git),这可能是问题所在。

试试这个:

git fetch --unshallow

然后git reset 可能会工作。

参考:

https://git-scm.com/docs/git-fetch

【讨论】:

【参考方案6】:

首先更新外部分支 git远程更新 然后 git reset --hard

【讨论】:

欢迎来到 Stack Overflow。在用其他五个现有答案回答一个五年前的问题时,指出您的答案所针对的问题的新方面非常有帮助。【参考方案7】:

我遇到了同样的问题,我解决了

$ git remote add origin <repo_link>
$ git fetch
$ git reset --hard <commit_id>

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于git reset --hard 错误:无法解析对象的主要内容,如果未能解决你的问题,请参考以下文章

从 git reset --hard 中恢复?

撤消 git reset --hard origin/master [重复]

git reset --soft,--hard的区别

git reset HEAD 与 git reset --hard HEAD的区别

git reset --hard和git revert命令

sh git hard reset staging