问题标签 [git-fsck]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4504 浏览

git - 在“git rm -rf”之后恢复暂存但未提交的文件

在我的本地机器上,我从文件夹中删除了文件。

然后我写了(不要问我,为什么!:))

我还没有承诺。现在我的项目中有空文件夹。.git文件夹中有objects53 Mb 的文件。

如何恢复我的文件?我尝试过像 Drill Disc 和 Stellar 这样的程序,但没有找到我的文件。而且我无法从 GIT 回滚。

如何恢复丢失的文件?

0 投票
5 回答
86000 浏览

git - 什么是 Git 存储库中的悬空提交和 blob,它们来自哪里?

我正在寻找有关悬空提交和 blob 的基本信息。

我的存储库似乎很好。但我第一次跑来git fsck看看它做了什么,我有一长串“悬空 blob”和一个“悬空提交”。

这些是什么东西?哪儿来的?它们是否表明我的存储库状态有任何异常(好或坏)?

0 投票
2 回答
23244 浏览

git - git fsck 代表什么?

fsck命令名称后面的含义是什么?

该命令的文档似乎没有提到该名称代表什么。

0 投票
2 回答
448 浏览

git - 在第一次提交之前撤消 git rm -rf(不明确的参数 'HEAD')

在我提交之前,我在一个新的 repo 中做了git rm -r -f一个 ENTIRE 目录。我没有树枝。

我尝试了 Stack Overflow 上的答案,但没有任何帮助。我试过这个:

但是得到了这个:

有什么办法可以找回文件吗?

0 投票
0 回答
51 浏览

git - 如何找到引入特定树的第一个提交?

给定以下git fsck输出

我如何找到引入这个虚假树的第一个提交?

0 投票
0 回答
84 浏览

git - 由于文件错误,Git 到 Mercurial 的转换失败

我正在尝试将 git 存储库转换为 mercurial。中途失败并出现以下错误:

在 git repo 中运行git fsck不会显示任何错误。

如何找出问题所在,以及如何解决?

0 投票
2 回答
5008 浏览

git - 如何恢复 HEAD^'S 树?

tl; dr:HEAD^如果它被删除并且没有预先推送并且其他所有内容都完好无损,是否可以恢复它的树?

我不小心删除了我的部分.git. 我不完全确定缺少什么。

在发现这git push不起作用后,我运行了一个git fsck

所以我的假设是我只是缺少一些可以从 GitHub 恢复的信息。我的下意识反应是 run git fetch,但返回时没有输出,因为它认为没有什么新东西要获取。

我试过 unpacking .git/objects/pack/pack-ea43d1db155e4502c2250ec1d4608843715c8b1f.pack,几种方法,但它从来没有奏效。例如:

我每次都收到这个错误。(请记住:它是一个--mirror,所以它是 GitHub 所拥有的精确副本- 对吧?那它怎么可能是腐败的呢?)

最终我意识到我实际上并不需要解压缩包文件。我可以将它复制回原始存储库,Git 会很好地拾取它。所以:

这似乎起到了作用。大多。

正如你所看到的,这修复了除了一个缺失的链接之外的所有链接。事实证明,是我尚未推送db238d的提交的 id(恰好是)。HEAD^我是否正确假设此存储库中的最后两个提交是不可恢复的,我需要重新创建这些提交的内容?在这种情况下,我是否做出了正确的决定?

0 投票
1 回答
2169 浏览

git - 如何修复损坏的 git 存储库 - “git fsck”报告“树 [hash] 中的警告:包含指向 null sha1 的条目”

概述:

我无法成功地将我们的 repo 中的更改拉到我们的生产服务器。

在我的 repo 上运行“git fsck”返回了 5 个相同错误的实例:

该错误存在于我们 repo 的所有版本中,包括托管在 bitbucket 上的版本。

我和我的同事都在我们非常希望保留的本地版本的存储库中进行了未推送和未提交的更改。

我已经尝试使用谷歌、stackoverflow 和手册页来解决这个问题,但我找不到一个好的指南来解释正在发生的事情或如何解决问题。

谈到 GIT,我和我的同事都是相对的菜鸟。我们已经掌握了基础知识,但我们还没有花时间在低级命令上。

对于恢复我的回购完整性的任何和所有帮助,我将不胜感激。

详细说明:

当我尝试将远程分支拉到我的生产服务器时,我的问题就开始了。它应该是对工作目录的简单更新,但我遇到了一些我不记得的模糊错误,发现我的工作目录已损坏。

合并失败后,Git 状态报告了大量未跟踪和修改的文件。我不知道如何用 git 命令解决问题,所以我手动操作文件系统来删除文件(但我没有触及 .git 目录中的任何内容)并将我的工作目录恢复到我的状态生产服务器将为我的网站提供服务而不会出错。

在我的 repo 上运行“git fsck”返回了 5 个相同错误的实例:

我跑了 git fsck :

  • 我的开发机器上的仓库
  • 我同事的开发机器
  • 来自 bitbucket 在 dev 和 prod 上的新克隆版本 repo

我尝试的所有内容都显示相同的警告。所以无论问题是什么,它都存在于我们回购的所有版本中。

调用“git ls-tree [树哈希报告错误]”会显示正常的目录打印输出以及坏树哈希:

我找到的最接近解决方案的是这个 stackoverflow 帖子:How to remove an entry with null sha1 in a Git tree。但是,我无法真正理解这些步骤,剪切和粘贴命令也无法解决我的问题。

我的问题:

  • 这些错误的真正含义是什么?他们有多严重?
  • 我们如何修复我们的回购(如果可能,请为我们的菜鸟一步一步地进行)?
  • 我们应该在修复之前还是之后提交并将所有更改推送到 repo?
  • 修复回购有什么影响?我们如何将修复分发到所有版本的 repo(例如开发机器和生产服务器)?
  • 是什么导致了这个错误,我们如何防止它再次发生?
0 投票
1 回答
243 浏览

git - 如何捕获 git fsck --full --verbose 的日志

如何捕获git fsck --full --verbose日志文件中的输出?

我试过了

但两者都不适合我。我应该怎么办?

0 投票
0 回答
275 浏览

git - 如何在不启动 git pack-index 命令的情况下推送大型 git 存储库?

我知道这个问题。我已经执行了我的本地修改,但似乎官方 git 项目git fsck在推送到原点之前在本地执行。

并且命令失败......

问题是虽然包格式允许(size_t 或 unsigned long),但官方 git 项目在内部使用 32 位有符号整数来处理树对象大小(限制为 2Gb)

那么有没有在 push 之前不会执行 fsck 的命令?或者另一个项目/库(我找不到如何用 libgit2 来做)让我留在我的笔记本电脑上?
另一种方法是通过 ssh 协议获取有关 git 的文档,这样我就可以自己实现该部分。