如何恢复已删除的 .git/modules 文件夹
How to recover deleted .git/modules folder
在我的项目中。git/modules 文件夹被删除了。现在我可以将父分支重置为其他版本,但子模块更新不起作用。
我收到的错误:
fatal: Not a git repository: ../.git/modules/abc.
Unable to find current revision in submodule path 'abc'
如何恢复删除的文件夹并恢复与父分支一致的子模块。
回购结构是这样的:
parent_folder---|---abc
|---def
abc 和 def 是子模块。
您必须再次初始化和更新子模块,
git submodule init
git submodule update
它应该下载并更新当前的子模块代码。
如果它仍然不起作用,请尝试删除子模块并使用
再次添加它
git submodule add <params>
如果这不能解决问题,请添加带有 --force
标志的子模块
If --force
is specified, the submodule will be checked out (using git checkout --force if appropriate), even if the commit specified in the index of the containing repository already matches the commit checked out in the submodule.
我正在扩展 CodeWizard 的回答。
如果你得到
fatal: No URL for Submodul-Path 'app/design/Foo/Bar' in .gitmodules
found
然后执行git rm app/design/Foo/Bar
或git rm --cached app/design/Foo/Bar
再试。
如果你得到
fatal: Could not find repository-handle for Submodul 'app/code/Foo/Bar'.
那可能是因为你删除了.git/modules.
中的文件夹
.git 文件 app/code/Foo/bar 只是一个 "fake" 文件,它引用了真正的 git 仓库.git/modules。它不是真正的存储库。如果你打开它,你会看到:
gitdir: ../../../../.git/modules/app/code/Foo/Bar
所以只需 删除 文件夹“app/code/Foo/Bar”,然后重试。
在我的项目中。git/modules 文件夹被删除了。现在我可以将父分支重置为其他版本,但子模块更新不起作用。
我收到的错误:
fatal: Not a git repository: ../.git/modules/abc.
Unable to find current revision in submodule path 'abc'
如何恢复删除的文件夹并恢复与父分支一致的子模块。
回购结构是这样的:
parent_folder---|---abc
|---def
abc 和 def 是子模块。
您必须再次初始化和更新子模块,
git submodule init
git submodule update
它应该下载并更新当前的子模块代码。
如果它仍然不起作用,请尝试删除子模块并使用
再次添加它git submodule add <params>
如果这不能解决问题,请添加带有 --force
标志的子模块
If
--force
is specified, the submodule will be checked out (using git checkout --force if appropriate), even if the commit specified in the index of the containing repository already matches the commit checked out in the submodule.
我正在扩展 CodeWizard 的回答。
如果你得到
fatal: No URL for Submodul-Path 'app/design/Foo/Bar' in .gitmodules found
然后执行git rm app/design/Foo/Bar
或git rm --cached app/design/Foo/Bar
再试。
如果你得到
fatal: Could not find repository-handle for Submodul 'app/code/Foo/Bar'.
那可能是因为你删除了.git/modules.
中的文件夹.git 文件 app/code/Foo/bar 只是一个 "fake" 文件,它引用了真正的 git 仓库.git/modules。它不是真正的存储库。如果你打开它,你会看到:
gitdir: ../../../../.git/modules/app/code/Foo/Bar
所以只需 删除 文件夹“app/code/Foo/Bar”,然后重试。