如何在不同 git 存储库的文件夹中创建独立的 git 存储库?

Posted

技术标签:

【中文标题】如何在不同 git 存储库的文件夹中创建独立的 git 存储库?【英文标题】:How to create an independent git repository in a folder within a different git repository? 【发布时间】:2015-05-07 10:12:24 【问题描述】:

我在文件夹 AAA 中有一个 git 存储库,然后在文件夹 BBB 中有另一个 git 存储库。

我需要做的是在 AAA 中创建一个新文件夹,我将在其中复制 BBB 存储库,因此它将成为 AAA 的子文件夹强>.

结果应该是 AAA 存储库保持原样并排除 BBB 文件夹,而当我进入 BBB 文件夹时,它是一个新的与 AAA 无关的自己的存储库。

你能解释一下怎么做吗?

据我了解,我可能可以在 AAA 中创建子文件夹 BBB 然后将其添加到 .gitignore 中,然后在那里初始化一个新的 repo?正确的?我该怎么做?谢谢!

【问题讨论】:

你应该看看 git 子模块。不过它们比较复杂,所以关于堆栈溢出的帖子可能不是最好的地方。这是一个我喜欢的链接,它很好地解释了它:chrisjean.com/2009/04/20/…. 看起来像 question 的重复。 Maintain git repo inside another git repo的可能重复 【参考方案1】:

这是您需要做的绝对最小值

git init AAA
cd AAA
echo BBB > .gitignore
git init BBB

对于大多数情况submodules 是更好的解决方案。但是,如果您希望存储库彼此完全独立,这是一种方法。

【讨论】:

谢谢!你认为它比使用子模块更好吗? 不同的是,如果你想让 git repos 相互了解,那么你需要使用一个子模块。如果您希望他们故意不了解彼此,这是一个完美而简单的答案。 @deemeetree 不,我认为子模块是一个更好的解决方案。有了它们,AAA 存储库将指向 BBB 中的版本,这可能是您想要的。 @KlasMellbourn 实际上不,我不希望 AAA 知道 BBB。那么对于这种情况,gitignore 会更好吗?

以上是关于如何在不同 git 存储库的文件夹中创建独立的 git 存储库?的主要内容,如果未能解决你的问题,请参考以下文章

git:版本控制系统简介

如何在 heroku 中使用现有的 git 存储库

在存储库中创建存储钩子

如何在 Windows 10 中创建 .gitignore 文件 [重复]

如何在 Protégé 中创建财产?

如何在张量流中创建独立的 LSTM 单元?