前端 | git submodule

作者: 重学前端MDN | 来源:发表于2017-09-28 10:05 被阅读118次
Git.png

开发过程中,经常会有一些通用的部分希望抽取出来做成一个公共库来提供给别的工程来使用,而公共代码库的版本管理是个麻烦的事情。今天无意中发现了Gitgit submodule命令,之前的问题迎刃而解了。

添加

为当前工程添加submodule,命令如下:
git submodule add 仓库地址 路径
其中,仓库地址是指子模块仓库地址,路径指将子模块放置在当前工程下的路径。

注意:路径不能以 / 结尾(会造成修改不生效)、不能是现有工程已有的目录(不能順利 Clone)
命令执行完成,会在当前工程根路径下生成一个名为“.gitmodules”的文件,其中记录了子模块的信息。添加完成以后,再将子模块所在的文件夹添加到工程中即可。

删除

submodule的删除稍微麻烦点:首先,要在“.gitmodules”文件中删除相应配置信息。然后,执行“git rm –cached ”命令将子模块所在的文件从git中删除。

下载的工程带有submodule

当使用git clone下来的工程中带有submodule时,初始的时候,submodule的内容并不会自动下载下来的,此时,只需执行如下命令:
git submodule update --init —recursive
即可将子模块内容下载下来后工程才不会缺少相应的文件。

遇到的bug

问题

偶然有一次,遇到了问题

fatal: 'git status --porcelain' failed in submodule common-module

我的操作步骤是这样的:

  1. 在项目的一个文件夹 research-share 执行了 git submodule add 仓库地址 common-module,这时候看git status ,没有问题
  2. 然后给research-share 重命名为 research-column,然后再git status就报错,
fatal: 'git status --porcelain' failed in submodule common-module
解决方法

将 common-module 在research-column文件夹删掉,然后重新add就可以

image.png

相关文章

  • git submodule命令记录

    添加submodule:git submodule add <本地目录> 例如:git submodule ...

  • 前端 | git submodule

    开发过程中,经常会有一些通用的部分希望抽取出来做成一个公共库来提供给别的工程来使用,而公共代码库的版本管理是个麻烦...

  • 日常小问题

    git 子模块git submodule init && git submodule update ubuntu下...

  • git submodule foreach --recursiv

    git submodule foreach --recursive git submodule update用于自...

  • Git submodule

    Add submodule to .gitmodules git submodule add git://gith...

  • git 子模块的使用

    git submodule study 添加子模块 git submodule add http://ip:300...

  • Git submodule 采坑

    Git submodule 采坑 使用git submodule update --init 时遇到错误:erro...

  • 常用Git命令

    git submodule 添加:git submodule add 仓库地址 路径 下载的工程带有submodu...

  • git命令更新子模块

    1.cd进入子模块 2.git submodule init 3.git submodule update

  • git submodule

    1.第一次添加submodule git submodule add xxx.git 修改.gitsubmdule...

网友评论

本文标题:前端 | git submodule

本文链接:https://www.haomeiwen.com/subject/colmextx.html