概述:
我无法成功将我们的仓库中的更改提取到生产服务器.
在我的repo上运行"git fsck"返回了同样错误的5个实例:
warning in tree [hash]: contains entries pointing to a null sha1
Run Code Online (Sandbox Code Playgroud)
我们的所有版本的repo都存在错误,包括bitbucket上托管的版本.
我和我的同事在我们非常希望保留的本地版本的回购中都有未经删除和未提交的更改.
我已经尝试了google,stackoverflow和man page,但是我找不到一个好的指南来解释发生了什么或如何解决问题.
在谈到GIT时,我的同事和我是相对的新手.我们已经掌握了基础知识,但我们还没有在低级命令中花费任何时间.
我很感激任何和所有帮助恢复我的回购的完整性.
详细说明:
当我尝试将远程分支拉到生产服务器时,我的问题就出现了.它应该是对工作目录的简单更新,但我得到一些模糊的错误,我不记得,发现我的工作目录已损坏.
合并失败后,Git状态报告了大量未跟踪和修改的文件.我无法弄清楚如何使用git命令解决问题所以我手动操作文件系统以删除文件(但我没有触及.git目录中的任何内容)并让我的工作目录回到我的状态生产服务器将无误地为我的网站服务.
在我的repo上运行"git fsck"返回了同样错误的5个实例:
warning in tree [hash]: contains entries pointing to a null sha1
Run Code Online (Sandbox Code Playgroud)
我跑了git fsck:
我试过的一切都显示出相同的警告.所以无论问题是什么,它都在我们的回购的所有版本中.
调用"git ls-tree [树形哈希报告错误]"显示正常的目录打印输出以及坏树哈希:
160000 commit 0000000000000000000000000000000000000000 [name of repo]
Run Code Online (Sandbox Code Playgroud)
我找到的最接近解决方案的是这个stackoverflow帖子:如何在Git树中删除带有null sha1的条目.但是,我无法真正理解这些步骤,切割和粘贴命令无法解决我的问题.
我的问题:
这个问题很老了;不过,也许它对其他人有帮助。
git reset --hard在副本中执行 a,然后修复所有内容。cp,而不是 git。git push --all --force.