在2 Git repos之间共享元素的最佳方法是什么?
说,我有一个用JavaScript编写的AngularJS前端项目。现在我们有一个用Node.js编写的后端。当然,这可以是任何语言和任何其他用例。说一个Spring Java项目。和另一个类似的Spring Java项目。两者共享您编写的实用程序库。放在哪里,轻松分享?一些实用程序函数仅在两个项目中使用。
在SVN中,这非常简单。你在大回购上创建。你想要项目a
?好吧,你只需要检查该文件夹加上说项目/文件夹global
。随意开始编码。
那么Git呢?我们退后一步了吗?
I read about submodules and sub trees, and they look complex. They seem to lead to a lot of trouble.特别是当你不习惯这个时。
我确信这个问题已经解决了数千次。我只是想知道如何?
答案 0 :(得分:2)
分离这些的正确方法如下:
适合此的依赖管理工具:
pom.xml
)package.json
)bower.json
)尽量避免使用Git子模块,它们很复杂,管理起来也很麻烦。使用上述依赖管理工具之一,使用您的共享代码就像使用任何其他第三方库(Spring,Angular,Express,...)
如果要在本地将开发项目链接在一起,以便可以处理共享代码而无需提交/发布/更新库以显示更改,则可以使用link
功能Bower和npm。有关这些问题的详细解答,请参阅以下问题:
答案 1 :(得分:0)
你可以使用Maven来实现这个目的,我在我的应用程序中应用了相同的逻辑。如下图所示。
com.org.abc (maven - group - id)
com.abc.util (common-util -- maven - artifact-id)
我的util项目是com.org.abc的子项目。
现在让我们假设,我需要将util项目用于另一个项目。
com.org.xyz
现在您只需要在com.org.xyz pom.xml文件中添加依赖项com.abc.util jar。
Maven是项目管理工具,用于此目的。请参阅本教程
答案 2 :(得分:0)
在命名git
存储库时,您可以查看以下有用的准则
lowercase
,kebab-case
作为存储库名称<project>-<platform>-<module>
,<module>
部分是可选的,而<platform>
部分是其中之一: android , ios ,后端,前端, rn , unity -存储库名称应由三部分组成:<project>-<platform>-<module>
,<module>
部分是可选的,而<platform>
部分是以下之一: android , ios ,后端,前端, rn ,统一 surge-android
,surge-ios
,surge-backend-api
,surge-frontend-admin
,surge-rn
-存储库名称示例:surge-android
,{ {1}},surge-ios
,surge-backend-api
,surge-frontend-admin
surge-rn
-如果项目名称由多个单词组成,请使用破折号作为分隔符,例如rich-uncles-frontend
rich-uncles-frontend
,futupilot-backend-api-v1
-如果项目有多个版本,请使用 v1 , v2 后缀,例如futupilot-backend-api-v2
,futupilot-backend-api-v1
futupilot-backend-api-v2
作为平台标识符,例如js-monorepo
-如果将API,Web或RN混合在单个存储库中,请使用ordr-js-monorepo
作为平台标识符,例如js-monorepo
参考
https://github.com/strvcom/strv-guidelines/blob/master/git.md