Git嵌套仓库管理

Luxin23 · · 2769 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

在开发中。有的时候我们可能在项目目录下用git从网络下引入了另外的git库。

如下图。我用vendor目录来存放我的golang依赖库时。因为golang.org 这个目录下的库在国内是很难通过正常方式获取到,经常在go get 的时候报错。所以我们通常都是同github上面手工clone 下来,然后拷贝到golang.org这个目录。

golang.org.png

当我使用git add 添加进来。会给我报错。

add.png
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。我们又可以继续提交代码了,真开心,生活就该这么美好。

ojbk.png

submodule方式解决方案

还未研究,据说有点麻烦。

忽略文件解决方案

把这个目录写进.gitignore文件就好


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:Luxin23

查看原文:Git嵌套仓库管理

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2769 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传