【问题标题】:Git reset failing after find and replace查找和替换后 Git 重置失败
【发布时间】:2013-01-11 23:06:21
【问题描述】:

没有 git 的命令在工作了,创建了一个分支,做了一些提交。然后我做了一个递归查找和替换:

LANG=C find . -type f -name '*.*' -exec sed -i '' s/My\ sentence/My\ sentencevotre/ {} +

它工作正常,但现在我无法提交,我无法硬重置,重置时我有一系列消息: 错误:packfile .git/objects/pack/pack-$SHA.pack 与索引不匹配 ...

提交时:

警告:packfile .git/objects/pack/pack-$SHA.pack 无法访问 …… 错误:“Doxyfile”的无效对象 100644 $SHA 错误:构建树时出错

我该如何管理?

【问题讨论】:

  • 尝试撤消对 .git 文件夹的更改。如果这不起作用,您可能会导致您的存储库崩溃且无法修复。
  • @Hikaru-Shindo,这是灾难性的......你知道我如何找到 .git/objects/pack/pack-$SHA.pack 相关的名称文件吗?
  • 不,我不太了解 git 的内部结构。如果这没有帮助,您将需要从备份中恢复或创建新的存储库。如果你已经建立了一个远程仓库,你可以克隆一个新的副本——那么损失不会是全部的。
  • 除非你真的知道自己在做什么,否则不要手动修改.git 下的文件。这听起来像你已经破坏了你的存储库。希望您在某个可以恢复的地方拥有它的克隆。
  • Problems with corrupt git repo 的可能重复项

标签: php git git-commit


【解决方案1】:

撤消您的查找和替换,然后重试。也许你足够幸运......否则使用你的备份。

下次要小心你的 .git 目录。

【讨论】:

  • 你知道如何找到 .git/objects/pack/pack-$SHA.pack 相关的名称文件吗?
  • 不,我不是 git 内部的专家。我知道所有重要数据都使用校验和保护,因此 git 不会让您处理不一致的数据(正是您现在所遇到的)
【解决方案2】:

您似乎更改了 .git 文件夹中的文件,该文件夹定义了存储库。除了删除 .git 文件夹并在该文件夹中重新创建一个新的 git 存储库之外,我不知道任何其他解决方案。如果您有 GitHub 之类的远程存储库,这应该不是什么大问题。

【讨论】:

  • 不,我没有使用 github fir... 你知道我如何找到 .git/objects/pack/pack-$SHA.pack 相关的名称文件吗?跨度>
猜你喜欢
  • 2023-03-03
  • 1970-01-01
  • 2012-12-30
  • 1970-01-01
  • 1970-01-01
  • 2014-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多