给定项目目录中的 git 存储库树,例如
Projects/
+A/
|+.git/
+B/
|+.git
我想建立一个 git 存储库Projects.git
,它不跟踪项目的内容,而只跟踪它们的存在和状态。克隆此存储库的人应该只有一个未克隆存储库等的骨架A
,B
并单独激活它们是否保持同步。典型的工作流程如下所示:
- 第一次设置:
git clone server:Projects.git
- 激活项目
A
,它也会克隆它 - 现在每个
git-push/pull
,无论它是否在Projects/
或Projects/A
应该更新两者A.git
和Projects.git
的信息A
。任何相关的东西都B
应该被忽略,因为它是非活动的并且在本地是空的 - 激活项目
B
,克隆它 - 现在 any
git-push/pull
in也应该在andProjects
中这样做,而 push/pull in不应该影响A
B
A
B
- 停用项目
A
,(验证后A.git
不需要 agit-push
)清空本地目录A
,不影响Project.git
怎样才能得到最好的治疗?我目前的方法是一些钩子魔术,但我对git 子模块不够熟悉,看是否可以通过子模块来实现,或者我是否需要使用其他解决方案。