我对Git很新:我来自SVN,在那里我发现了非常强大的外部功能。在Git中我找不到类似的东西:
所以场景是这样的:我有一个项目,我想在其中包含一些库。我希望有可能改变所有这些库并将它们推送到自己的回购中。此外,这些库中的一些是较大项目的子目录(例如,如果项目还包括演示或自述文件,我将不会在项目中包含这些目录)。
我该怎么做?
我试过了:
好吧,如果你已达到这一点,感谢你的耐心,现在我想要别的东西尝试,因为现在我的结论是:“在Git中不允许子树推送”ç_ç
答案 0 :(得分:3)
评论中的几点评论:
所以我建议:
git checkout
parent repo
+
+--> main project
+
+-> mainDir1
+-> mainDir2
+--> lib1
+
+-> lib1Dir1
+-> lib1Dir2
+--> lib2
+
+-> lib2Dir1
+-> lib2Dir2
您自己的项目目录结构(例如)
+--> main project (symlink to ../parent/main project)
+
+-> mainDir1
+-> mainDir2
+-> lib1Dir1 (symlink to ../parent/lib1/lib1Dir1)
+-> lib1Dir2 (symlink to ../parent/lib1/lib1Dir2)
+-> lib2Dir2 (symlink to ../parent/lib1/lib2Dir2)
(注意没有lib2Dir1
(例如),因为在你的实际项目中你不需要它)
答案 1 :(得分:1)
VonC的解决方案很简洁,但它有一个缺点: 没有好的方法可以在某个时间点捕获项目+库的配置。
如果您需要再次设置项目,则需要检查项目+库,但它们可能都在不同的分支上,并承诺以前的内容。
因此,如果您遵循VonC的建议,可能会在您发布项目时在每个回购中创建标记,以便您至少可以在同一点再次检查它们。
否则,请始终向前移动,不要查看旧版本。