golang项目git-subtree完美解决差异包管理

Posted 黎东海

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang项目git-subtree完美解决差异包管理相关的知识,希望对你有一定的参考价值。

目标:

1.把golang官方已移动过url的包跟随自己的项目git代码上传到项目源码中.

2.把或自己修改过的差异化fork包跟随自己的项目git代码上传到项目源码中.

解决方案:

方案1.第三方包管理 

http://tleyden.github.io/blog/2016/02/08/adding-vendoring-to-a-go-project/

方案2.手动处理过程

a.在项目根目录下创业文件夹 "/vendor/src"

b.通过git-subtree下拉包到上一步目录下,红包部分即要安装的包地址

git subtree add --prefix vendor/src/github.com/go-sql-driver/mysql https://github.com/go-sql-driver/mysql.git master --squash

c.须要列新包时可以把add参数改为pull执行一次即可

d.添加vendor文件夹和push到git源码中

$ git add vendor
$ git commit -m "..."
$ git push origin master 

完成

以上是关于golang项目git-subtree完美解决差异包管理的主要内容,如果未能解决你的问题,请参考以下文章

git怎么更新submodules

seata-golang如何实现AT模式一致性

golang 不同类型之间计算的精度问题怎么解决

golang 分配新切片与修复旧切片之间的差异

htop 和 golang readmemstats 之间的差异

使用govmomi库在golang中的零点差异