git - 包括其他项目
git - include other project
假设我有一个项目 A
使用了另一个项目 B
。
为此,A
的 git 存储库中有一个子文件夹,B
已被克隆到其中。
现在,将该文件夹同步到 A's
存储库的最简单方法可能是将该文件夹及其中的所有内容添加到 A's
索引并完成它。
由于我没有使用过这种嵌套 git 结构的经验,所以我想知道这样做是否明智。我这样做会冒任何风险吗?有哪些替代方案?
我想推荐:subtree merging 因为它更容易维护,正如@kowsky 提到的,当您的项目经常更改时。
您只需要以正常方式创建每个存储库。在您的 "collector" 存储库中,您可以将另一个存储库合并为 "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
拉入您的 "collector" 存储库(或更新它),请使用子树合并策略:
$ git pull -s subtree AnotherRepo master
这是常用的方法并且有效:-)
有关此方法的更多信息,包括将其与子模块进行比较,可在此 git Git-Tools-Subtree-Merging
中找到
假设我有一个项目 A
使用了另一个项目 B
。
为此,A
的 git 存储库中有一个子文件夹,B
已被克隆到其中。
现在,将该文件夹同步到 A's
存储库的最简单方法可能是将该文件夹及其中的所有内容添加到 A's
索引并完成它。
由于我没有使用过这种嵌套 git 结构的经验,所以我想知道这样做是否明智。我这样做会冒任何风险吗?有哪些替代方案?
我想推荐:subtree merging 因为它更容易维护,正如@kowsky 提到的,当您的项目经常更改时。
您只需要以正常方式创建每个存储库。在您的 "collector" 存储库中,您可以将另一个存储库合并为 "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
拉入您的 "collector" 存储库(或更新它),请使用子树合并策略:
$ git pull -s subtree AnotherRepo master
这是常用的方法并且有效:-)
有关此方法的更多信息,包括将其与子模块进行比较,可在此 git Git-Tools-Subtree-Merging
中找到