git如何处理git存储库在另一个存储库中的位置?

时间:2012-09-24 05:25:16

标签: git directory nested

我一直在阅读一篇文章,作者在其中指示:在现有文档中创建一个新的存储库,并想知道这是否是他忽略的错误。我稍后会和他核实。

这些是我想检查的条件:

  1. 将现有目录放入存储库时的情况, 还检入了已经签入主项目的文件 新的(子)存储库。这可能吗?

  2. 签入包含git存储库的目录树时 第一次

  3. 在存储库下创建新的空存储库时 通过git init,或通过将.git存储库复制到新的或空的 ?目录

2 个答案:

答案 0 :(得分:2)

正如“Git repository in a git repository”中所提到的,嵌套式仓库主要被父仓库忽略(只记录了一个gitlink)

因此,父仓库上的任何操作都不会在嵌套仓库上发生。

如果您将嵌套的repo声明为子模块,那么您可以检出父repo 嵌套的repo,但该子模块将始终引用固定的提交。
如果您在子模块中进行任何修改,则需要提交它们,将它们推送到返回到父级仓库,提交并推送(以记录子模块的新固定提交)。
请参阅“True nature of submodules”。

答案 1 :(得分:1)

如果要执行此操作,如果要使用嵌套存储库,则应使用submodules。顶级存储库将跟踪所有子存储库的最新提交,在其中,事物可以按照您的意愿。如果没有这个,git将以无证件和不受支持的方式运行,因此您可能不应该尝试它。