替代git子模块

时间:2017-11-12 15:42:45

标签: git version-control dependencies git-submodules

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

我尝试了子模块,但根据git submodules reference似乎有许多垮台。

此依赖关系管理是否有更好的可能性? 这是什么最好的做法?

1 个答案:

答案 0 :(得分:0)

有两种情况可以与不同项目的库一起使用。 假设repoArepoB中的库是项目存储库之一。

情况1:库仅适用于您自己(仅在repoA中管理库)

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

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

现在无论在哪里(在本地repoA或本地repoB)您更改了库,它实际上都会更改本地repoA中的库,因此本地{{1}中的库}和本地repoA始终同步。

情况2:其他开发人员也需要projectB中的库(在repoA和repoB中管理库)

如果其他开发人员也需要使用这些库,您还应该在repoB中管理库。通常使用的方式是repoBgit submodule

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

  • 将库(在git subtree的{​​{1}}分支中假设)添加到master

    repoA
  • 如果repoB中有一些更改,请从git subtree add --prefix=repoB <URL for repoB> master 更改为repoA

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

    repoB