我一直在阅读作者指示的一篇文章:在现有存储库中创建一个新存储库,并想知道这是否是他忽略的错误。我稍后会和他核实。
这些是我要检查的条件:
将现有目录制作成存储库并且已经签入主项目的文件也将签入新(子)存储库的条件。这可能吗?
首次签入包含 git 存储库的目录树时
当在存储库下创建一个新的空存储库时,要么通过 git init,要么通过将 .git 存储库复制到新目录或空目录中?
正如“ git仓库中的Git仓库”中提到的,嵌套仓库大多被父仓库忽略(只记录了一个gitlink)
因此,对父存储库的任何操作都不会对嵌套存储库产生影响。
如果您将嵌套存储库声明为子模块,那么您可以签出父存储库和嵌套存储库,但该子模块将始终引用固定提交。
如果对子模块进行了任何修改,都需要commit,push ,然后回到父repo,commit,push(记录子模块新的fixed commit)。
请参阅“子模块的真实性质”。
如果你想这样做,如果你想拥有嵌套的存储库,你应该使用子模块。顶级存储库将跟踪所有子存储库的最新提交,在它们内部,事情可以如你所愿。如果没有这个,git 将以未记录和不受支持的方式运行,因此您可能不应该尝试它。