2012-09-24 97 views
2

我一直在阅读一篇文章,作者指示:在现有的存储库中创建一个新的存储库,并想知道这是否是他忽略的错误。我稍后会与他核实。git如何处理git仓库在另一个仓库中的位置?

这些条件我要检查:

  1. 的条件时,现有的目录制作成库, 和文件已经签入主体工程 也检查了新的(子)存储库。这可能吗?

  2. 当其中包含git仓库的目录树中 检查首次

  3. 当仓库下创建一个新的空仓库,无论是通过 的git init或通过复制git的存储库进入新的或空的 目录?

回答

2

正如在“Git repository in a git repository”所提到的,嵌套式回购主要由母公司回购(只gitlink记录)忽略

所以父回购任何操作不会对嵌套回购的发病率。

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

+0

这是否意味着在sub repo内制作的命令将应用于subrepo?而且这种情况会发生在一个已经被委托给主仓库的文件中? 我不打算,只是假设性地考虑它。 – vfclists

+0

@vfclists是的,subrepo中的任何命令都仅限于嵌套的repo。在主repo上已经提交的文件不在subrepo内:我们将在两个不同的父目录(即使它们的内容可能相同)中讨论在两个不同repo中提交的两个不同文件。 – VonC

1

如果你想这样做,你应该使用submodules如果你想拥有嵌套的存储库。顶层存储库将跟踪所有子存储库的最新提交,并且在它们内部,事情可以如你所愿。如果没有这个,git会以无证和不支持的方式运行,所以你可能不应该尝试它。