假设我有一个项目A
,它使用了另一个项目B
。
为此,在A
的git存储库中有一个子文件夹,其中B
已被克隆。
现在,将该文件夹同步到A's
repo的最简单方法可能是将该文件夹及其中的所有内容添加到A's
索引并完成。
由于我没有这种嵌套git结构的经验,我不知道这是否是一件很聪明的事情。通过这样做可以冒险做什么,有什么选择吗?
答案 0 :(得分:2)
我想建议:subtree merging,因为@kowsky提到,当您的项目经常更改时,它更容易维护。
您只需要以正常方式创建每个存储库。在你的"收藏家"您可以将另一个存储库合并为" collector"的子目录。目录。要做到这一点,只需运行以下命令:
$ git remote add -f AnotherRepo /path/to/that/repo
$ git merge -s ours --no-commit AnotherRepo/master
$ git read-tree --prefix=AnyDirectoryToPutItIn/ -u AnotherRepo/master
$ git commit -m "Merge AnotherRepo project as subdirectory"`
然后,将AnotherRepo
拉进你的"收集器"存储库(或更新它),使用子树合并策略:
$ git pull -s subtree AnotherRepo master
这是常用的方法,它有效: - )
有关这种方式的更多信息,包括将其与子模块进行比较,可以在此git Git-Tools-Subtree-Merging
中找到