git - 包括其他项目

时间:2017-03-07 07:43:18

标签: git directory workflow

假设我有一个项目A,它使用了另一个项目B

为此,在A的git存储库中有一个子文件夹,其中B已被克隆。

现在,将该文件夹同步到A's repo的最简单方法可能是将该文件夹及其中的所有内容添加到A's索引并完成。

由于我没有这种嵌套git结构的经验,我不知道这是否是一件很聪明的事情。通过这样做可以冒险做什么,有什么选择吗?

1 个答案:

答案 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

中找到