赞
踩
git submodule add -f http://xxx/breeze/icons ./breeze/icons
将 http://xxx/breeze/icons
克隆到 ./breeze/icons
目录下
git submodule
git submodule init
git submodule update
rm -rf ./breeze/icons
[submodule "breeze/icons"]
path = breeze/icons
url = http://xxx/breeze/icons
[submodule "breeze/icons"]
url = http://xxx/breeze/icons
active = true
rm -rf .git/modules/breeze/icons
第一种:git submodule 报(fatal: 在 .gitmodules 中没有发现路径 ‘xxx’ 的子模组映射);
第二种:git submodule init 报(fatal: 在 .gitmodules 中未找到子模组 ‘xxx’ 的 url);
第三种:修改了.gitmodules文件之后执行了 git submodule sync,但是执行 git submodule init 还是报第二种错误,那是因为还有存在缓存。如果执行完sync命令之后又执行了 git rm --cached ‘xxx’(这里是子模块路径,末尾不用加/),但是init的时候还是报第二种错误。
总结
:解决删除子模块报错:需要将.gitmodules文件提交到仓库之后再重新执行 git rm --cached ‘xxx’ 命令清理缓存
git rm --cached 'xxx'(这里是子模块路径,末尾不用加/)
如果修改.gitmodules中子模块url,需要同步子模块url,同步之后就可以看到.git/config中子模块的url也更改了
git submodule sync
git submodule foreach git checkout master
git submodule foreach git pull
[submodule "breeze/icons"]
path = breeze/icons
url = http://xxx/breeze/icons
ignore = dirty
ignore = untracked只忽略未跟踪的文件,ignore = dirty也忽略修改的文件,ignore = all也忽略提交。
Git 1.7.2以上版本,可以使用命令 git status --ignore-submodules=dirty 忽略“脏的”子模块
也可以将以下配置选项添加到本地git配置中来忽略它:
[diff]
ignoreSubmodules = dirty
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。