2014-12-01 163 views
1

存储库A具有我们编写的自定义表单导航引擎(仅作为示例)以及许多其他代码。存储库B将是一个单独的项目,希望使用相同的表单导航引擎。我们不想将代码副本保留在两个地方,我们只是希望在Repo B中的项目中看到Repo A中的提交。这是Git中子模块的情况吗?如果没有,推荐的方法是从另一个仓库引用代码是什么?谢谢Git存储库引用来自另一个git存储库的代码

+2

使用子模块或子树:http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/ – three 2014-12-01 20:04:30

回答

0

子模块和子树合并都适用于此方案。我会去做子树,因为submodules是一个皇家PITA。请参阅问题评论中的@三位链接。优秀的阅读。

在徇众要求:为什么子模块皇家PITA

  • 多年来没有命令来删除一个子模块。还有吗?
  • 在3个地方子模块的URL的冗余存储:主体工程.gitmodules,主要项目配置,子模块的配置
  • 结果需要到submodule update所有的时间
  • 简单检出操作成为噩梦,尤其是当一个分支有子模块,但其他不是
  • 人们假设有一个递归推送,但不能,因为子模块可能来自只读URL
  • 但忘记在主回购之前推子模块?公共主回购中断。

所有上述问题随着子树合并而消失。价格:推向子项目的上游是不平凡的。

+0

请参阅更新。开发人员定期使用子模块的结果。不是没有任何问题。子树合并的 – SzG 2014-12-02 07:09:18

+0

做了诡计,谢谢! http://www.codeproject.com/Articles/562950/GitplusSubtreeplusMergeplus-e-TheplusQuickpl – dt1000 2014-12-03 04:01:49