Git子模块,仅添加忽略的目录

时间:2020-09-27 13:38:40

标签: git git-submodules

说我具有以下结构:

Foo
  |-- Bar 1 (git repo)
       |-- Folder 1
       |-- Folder 2
  |-- Bar 2 (git repo)
       |-- Folder 1
       |-- Folder 2

其中Bar 1和Bar 2是 same 克隆的git repo(例如项目代码),因此两个目录的Folder 2位于.gitignore中。 (因此,条1和条2都忽略文件夹2),但是文件夹1实际上位于“条”存储库中。

我想要做的是在文件夹Foo上创建一个新的存储库,该存储库跟踪所有2s文件夹中的更改。 (又称不在Bar 1/2存储库中的文件夹)

我一直在尝试添加子模块和类似的东西,但是它似乎并没有满足我的需求。 (我对子模块了解不多,当您处理已经存在的内容时,它们会使您感到困惑。)任何人都知道如何执行此操作,或者可以向我指出一个指南,该指南显示了如何使子模块工作,而不是基本的向导?

1 个答案:

答案 0 :(得分:0)

我要做的是在文件夹Foo上创建一个新的存储库

该新存储库不必位于文件夹Foo中。
子模块是将远程存储库引用导入当前存储库的一种方法。

因此,理想情况下,您可以在Foo之外定义Folder2并将其推送到其自己的远程存储库(在GitHub / GitLab / BitBucket / Gitea / ...上)

然后在Foo上输入:

git rm Bar1/Folder2
git rm Bar2/Folder2

git submodule add /url/remote/Folder2 Bar1/Folder2
git submodule add /url/remote/Folder2 Bar2/Folder2

git commit -m "Replace Folder2 by submodules"
相关问题