表示 git 项目对具有自己的 git 存储库的本地包的依赖的最佳实践是什么?



我有一个本地包依赖项,它有自己的git存储库,并且我的项目依赖于该目录。同步项目存储库及其本地包存储库的最佳方式是什么?

一种选择是将包合并为子项目,如下所述:

如何将Git项目迁移为具有子项目的一个项目

然而,如果我对包依赖项进行更改,我需要将其合并回。此外,最终会维护包的两个镜像版本。这是这种情况下的最佳实践,还是有更好的解决方案?

或者,我可以有一个到包的符号链接,但我不确定当一个项目有一个符号链接的git子回购时,最佳做法是什么。

对于源依赖项,您可以在以下两者之间进行选择:

  • git子模块

    git submodule add -b master -- /url/of/dependency.git
    
  • git子树(如图所示,请参阅本教程)

    git subtree add --prefix=subdir --squash /usr/of/dependency.git master
    

两者都允许在子repo中进行进化,但除非您进行常量更改,否则我更喜欢子模块:它允许引用另一个repo的固定SHA1
请参阅"git子模块和子树之间的差异"。

子回购被引用为gitlink,这是父回购索引中的一个特殊条目。只要你提交并推送它们,你仍然可以在该子repo中进行提交,然后向上gack一级到父repo,添加并提交新的SHA1(gitlink),并推送它。

您可以引用子模块以遵循分支(即-b master部分)

引用相同子模块的任何其他项目都需要做:

git submodule update --remote

他们将从该分支获取最新的(并且需要添加并提交子模块获取的新SHA1)

相关内容

  • 没有找到相关文章

最新更新