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