在依靠库的办理上,每种编程言语都会有自己独特的包办理机制,例如golang的mod办理。

其实还有一种更通用的,与言语无关的办理方式——git submodule 子模块办理。

这儿假设项目D,为其它多项目 项目A项目B等所依靠,则可以使用git submodule来完成项目A项目B项目D的依靠办理,完成如下关系图:

git submodule的在项目依靠中的使用

创立子模块依靠

为项目创立子模块,只需一条简略指令。例如,为项目A增加项目D子模块:

git submodule add <项目D git 库房地址> <项目A映射子目录>

设置子模块依靠版别

子模块作为一个独立项目,其版别办理也是独立的。项目A最终依靠于项目D的某一个版别,要完成版别绑定,可以按如下步骤操作:

cd <项目A映射子目录>
git checkout <commit hash 1>
cd <项目A目录>
git add <项目A映射子目录>
git commit <...>

通过如上的绑定,项目A 就绑定了 项目Dcommit hash 1这个版别。

删去子模块依靠

有时候,项目改变,或许需要免除子模块的绑定,例如要删去 项目A 对项目D的子模块依靠,可以依照如下步骤操作:

git rm --cached <项目A映射子模块>
rm -rf <项目A映射子模块>
vi .gitmodules # 删去.gitmodules中关于项目D的子模块描绘项
vim .git/config # 删去.git/config中关于项目D的子模块描绘项
rm -rf .git/module/<项目A映射子模块>

如此即可以完全删去 项目A中的项目D相关的子模块依靠信息。

总结

git submodule完成项目依靠如此简略,以至于小编在项目中,不由得很多使用,特别是私库的依靠办理。

希望我们也能测验,亲自领会它简略的设计思路和丝滑用法。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。