说我具有以下结构:
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存储库中的文件夹)
我一直在尝试添加子模块和类似的东西,但是它似乎并没有满足我的需求。 (我对子模块了解不多,当您处理已经存在的内容时,它们会使您感到困惑。)任何人都知道如何执行此操作,或者可以向我指出一个指南,该指南显示了如何使子模块工作,而不是基本的向导?
答案 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"