Git 存储库位于另一个 git 存储库中
我有以下目录结构:
- g1/
- .git
- 一个
- b
- c/
- .git
- d
- e
如您所见,我在存储库“g1”内有存储库“c”。当我使用以下命令时:
git clone g1 g2
我只得到以下目录结构:
- g1/
- .git
- 一个
- b
- c/
目录“c”仍为空。有什么想法吗?
I have the following directories structure:
- g1/
- .git
- a
- b
- c/
- .git
- d
- e
As you can see, I have de repository "c" inside repository "g1". When I use the following command:
git clone g1 g2
I only get the following directories structure:
- g1/
- .git
- a
- b
- c/
The directory "c" remains empty. Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
子模块(在Pro Git Book中讨论),帮助管理嵌套在主存储库中的存储库:
Submodules (discussed in the Pro Git Book), helps manage repositories nested within a main repository:
Git 2.5+(2015 年第 2 季度)在呈现子模块方面将更加精确。
由于子模块注册为 gitlink (索引中的一个特殊条目),它解释了为什么克隆父存储库时“
c
”为空。另请参阅“
git 子模块
签出相同的提交”。您需要一个
git submodule update --init
来填充“c
”。现在有更清楚的记录。
请参阅 提交 ec48a76(2015 年 5 月 27 日),作者:Stefan Beller (
stefanbeller
)。(由 Junio C Hamano --
gitster
-- 合并于 提交 7df5c97,2015 年 6 月 11 日)git submodule
手册页 现在(2015 年 6 月)开始于:Git 2.5+ (Q2 2015) will be a bit more precise in how it present submodule.
Since a submodule is registered as a gitlink (a special entry in the index), that explains why '
c
' is empty when the parent repo is cloned.See also "
git submodule
checks out the same commit".You need a
git submodule update --init
to fill-up 'c
'.That is now more clearly documented.
See commit ec48a76 (27 May 2015) by Stefan Beller (
stefanbeller
).(Merged by Junio C Hamano --
gitster
-- in commit 7df5c97, 11 Jun 2015)The
git submodule
man page now (June 2015) starts with:另一种方法是将 git 存储库存储为 bare< /a> 另一个 git 存储库中的存储库。
当您无法控制使用
inner
git 存储库的 git 流程时,此方法将很有帮助。例如,如果第三方工具使用它。在这种情况下,它可能会尝试克隆给定路径的内部存储库。我将 将 git 存储库存储在另一个 git 存储库中 的命令记录为一个裸存储库。
Another approach is storing git repository as a bare repository inside another git repository.
This approach will be helpful when you don't control the git flow for using
inner
git repository. For instance, if 3rd party tool uses it. In that case it may try to clone inner repository given a path to it.I documented the commands for storing git repository inside another git repository as a bare repository.