在开发中。有的时候我们可能在项目目录下用git从网络下引入了另外的git库。
如下图。我用vendor目录来存放我的golang依赖库时。因为golang.org 这个目录下的库在国内是很难通过正常方式获取到,经常在go get 的时候报错。所以我们通常都是同github上面手工clone 下来,然后拷贝到golang.org这个目录。
当我使用git add 添加进来。会给我报错。
warning: adding embedded git repository: vendor/golang.org/x/crypto
hint: You've added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint:
hint: git submodule add <url> vendor/golang.org/x/crypto
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached vendor/golang.org/x/crypto
hint:
hint: See "git help submodule" for more information.
warning: adding embedded git repository: vendor/golang.org/x/lint
warning: adding embedded git repository: vendor/golang.org/x/net
warning: adding embedded git repository: vendor/golang.org/x/sys
warning: adding embedded git repository: vendor/golang.org/x/text
warning: adding embedded git repository: vendor/golang.org/x/tools
意思就是我们项目下嵌套了其它库。这里提示我们要么使用submodule来管理这个嵌套的git库,要么把这个库删除。我只想简单的把这个依赖和项目一起提交而已。要不要这样子?
删文件的解决方案
进入到每个目录下,把.git 这个目录删了。这样就可以继续提交代码了。
rm -rf vendor/golang.org/x/lint/.git
rm -rf vendor/golang.org/x/net/.git
rm -rf vendor/golang.org/x/sys/.git
rm -rf vendor/golang.org/x/text/.git
rm -rf vendor/golang.org/x/tools/.git
彩蛋,look。我们又可以继续提交代码了,真开心,生活就该这么美好。
submodule方式解决方案
还未研究,据说有点麻烦。
忽略文件解决方案
把这个目录写进.gitignore文件就好
有疑问加站长微信联系(非本文作者)