gpt4 book ai didi

git - 我可以在 git 中 checkout 树对象吗?

转载 作者:太空狗 更新时间:2023-10-29 13:49:38 26 4
gpt4 key购买 nike

我在损坏的存储库中丢失了提交对象,但仍然有一些文件和树对象:

$ git fsck                                                
Checking object directories: 100% (256/256), done.
dangling blob 031be26142ed97da216fb7d79d16a0b0efdf0d71
dangling blob 4b2be7dfef082c2e247be52e6d78600af7b6dd40
dangling tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
dangling blob ccbb1056cb4e744f9a4b44a439fa036f6a3d7cbe
dangling blob 10bfbc3c1fa10e08cd6a783565f00e7324f61fe5
dangling blob 9b529957be714fef304c4e8161fe6cd138510e98
dangling blob dd5b54882d0b74db99c8a7fbba703d528dc559b9

有没有办法检查那个树对象?

我想可能有一种方法可以使用虚拟提交字符串重建提交对象并检查它。

git cat-file -p tree-sha1

最佳答案

如果你 git checkout 4b825dc642cb6eb9a060e54bf8d69288fbee4904 .(路径名的点很重要,否则 git 会将其解释为分支切换操作并拒绝)它将更新工作中的所有文件目录 匹配 4b825d 状态的索引...(也就是说,git diff 什么都不显示,git diff --staged 会显示很多变化,git status会显示很多M)。您可以通过这种方式检查文件的状态。

如果您对相关的父提交有猜测,您可以

git checkout -b recover relevant_parent
git checkout 4b825dc642cb6eb9a060e54bf8d69288fbee4904 .
git commit -m "Recovered this thing that git fsck told me about"

给它一个提交和一个分支来解决它。

关于git - 我可以在 git 中 checkout 树对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17603661/

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