当 git 子模块引用的存储库被删除时,会发生什么?

问题描述 投票:0回答:2

假设我在 github 上找到一个有趣的存储库我想使用,我将其添加为子模块,然后有一天存储库的所有者决定删除该存储库,我的子模块会损坏吗?

git github repository git-submodules git-remote
2个回答
6
投票

您仍然拥有已获取的历史记录,可以通过子模块更新或获取或您想要的方式进行。您仍然可以从任何拥有它们的存储库中获取这些历史记录,并将它们推送到任何地方,重要的是历史记录,而不是您或任何人将它们保存在哪个存储库中。

.gitmodules
文件只是关于在哪里找到它们的注释;当上游删除其存储库时,这些注释就会过时,但这就是为什么
git submodule init
git submodule update
是单独的命令:init 从
.gitmodules
中的注释加载存储库的配置,然后您可以根据需要更改它们。


0
投票

简短回答:

如果您的本地仍然有克隆的存储库,您将可以访问已删除子模块的所有提交历史记录,直到最后一个克隆。

如果您从 GitHub 重新克隆存储库,则不幸的是,子模块的内容将会丢失。

在任何情况下,如果您可以找到已删除子模块的另一个远程,例如 GitHub 上的分支,或磁盘上的另一个克隆,您也许能够从该远程恢复已删除的子模块。

© www.soinside.com 2019 - 2024. All rights reserved.