user$ sudo git submodule update
fatal: reference is not a tree: a094dcfeeb43fcd62a9e466156e05e7581026f33
Unable to checkout 'a094dcfeeb43fcd62a9e466156e05e7581026f33' in submodule path 'client/src/util'
我该怎么办?我只想从存储库中获得最新代码的干净副本,我不介意丢失所做的更改。 如您所知,我显然不确定发生了什么。我只能认为它正在尝试 checkout 文件,这意味着git在我的本地计算机上的文件中检测到本地更改。
我目前正在使用OSX
最佳答案
这是子模块最常见的问题。您在外部存储库中进行的提交具有对子模块中某人尚未提交的提交的引用。这是一个依赖问题。始终从内向外推。这很可能不是您做错的,而是其他在存储库中工作的人。他们很草率,忘了在子模块上发布推送,而只是推送了包含的存储库。 Stuff在他们的机器上工作是因为他们进行了更改并且这些提交都存在于那里。去给他们打耳光,告诉他们 push 子模块的改变:)
否则,如果您在另一台机器上工作而忘记了推送子模块更改,则可能是您的错。现在您在另一个位置,正在思考“发生了什么!这些是我的更改,它们也应该在这里工作!”
关于git - git子模块更新致命错误:引用不是树,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13425298/