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 e88056ac5d58fb0bbd23d3fe929eac01712d964
、git rev-parse HEAD
和 git 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 origin/master [重复]