【问题标题】:Alternative for git submodulesgit 子模块的替代方案
【发布时间】:2018-04-25 07:53:14
【问题描述】:

我经常为自己的使用编写一些库,我想在不同的项目中使用它们。我希望能够编辑库并使更改在使用库的所有项目中有效。直到现在我总是不得不做复制和粘贴。

我尝试了子模块,但根据git submodules reference 似乎有很多失败之处。

这种依赖管理有更好的可能性吗? 这方面的最佳做法是什么?

【问题讨论】:

标签: git version-control dependencies git-submodules


【解决方案1】:

有两种情况可以为不同的项目使用库。 假设repoA 中的库,repoB 是项目存储库之一。

情况1:库只为你自己工作(只管理repoA中的库)

您可以将本地repoA的库直接添加到本地repoB:

在本地repoB -> 右键单击​​projectB的解决方案 -> 添加 -> 现有项目 -> 将本地repoA中的库添加到本地repoB -> 提交 -> 推送。

现在无论在哪里(在本地repoA 或本地repoB)更改库,实际上是更改本地repoA 中的库,因此本地repoA 和本地repoB 中的库始终同步.

情况2:其他开发者也需要projectB中的库(同时管理repoA和repoB中的库)

如果其他开发者也需要使用这些库,您也应该在repoB 中管理这些库。常用的方式有git submodule和git subtree。

由于您已经尝试过子模块,我将只显示git subtree,如下所示:

  • 将库(假设在repoA 的master 分支中)添加到repoB:

      git subtree add --prefix=repoB <URL for repoB> master
    
  • 如果repoA有一些变化,获取从repoA到repoB的变化:

      git subtree pull --prefix=repoB <URL for repoB> master
    
  • 如果对repoB 中的库进行更改,则将更改推送到repoA:

      git subtree push --prefix=repoB <URL for repoB> master
    

【讨论】:

    猜你喜欢
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 2013-04-16
    • 2018-08-20
    • 2018-11-21
    • 1970-01-01
    相关资源
    最近更新 更多