git submodule功能
git tag
Git 中的tag指向一次commit的id,通常用来给开发分支做一个标记,如标记一个版本号。
打标签
git tag -a v1.0.0 -m "Relase version 1.0.0"
注解:git tag 是打标签的命令,-a 是添加标签,其后要跟新标签号,-m 及后面的字符串是对该标签的注释。
提交标签到远程仓库
git push origin -tags
注解:就像git push origin master 把本地修改提交到远程仓库一样,-tags可以把本地的打的标签全部提交到远程仓库。
删除标签
git tag -d v1.01
注解:-d 表示删除,后面跟要删除的tag名字
删除远程标签
git push origin :refs/tags/v1.01
注解:就像git push origin :branch_1 可以删除远程仓库的分支branch_1一样, 冒号前为空表示删除远程仓库的tag。
查看标签
git tag
或者
git tag -l
打标签:
git标签分为两种类型:轻量标签和附注标签。轻量标签是指向提交对象的引用,附注标签则是仓库中的一个独立对象。建议使用附注标签。
# 创建轻量标签
$ git tag v0.1.2-light
# 创建附注标签
$ git tag -a v0.1.2 -m “0.1.2版本”
创建轻量标签不需要传递参数,直接指定标签名称即可。
创建附注标签时,参数a即annotated的缩写,指定标签类型,后附标签名。参数m指定标签说明,说明信息会保存在标签对象中。
切换到标签:
与切换分支命令相同,用git checkout [tagname]
查看标签信息
用git show命令可以查看标签的版本信息:
$ git show v0.1.2
给指定的commit打标签:
打标签不必要在head之上,也可在之前的版本上打,这需要你知道某个提交对象的校验和(通过git log获取)。
# 补打标签
$ git tag -a v0.1.1 9fbc3d0
标签发布:
通常的git push不会将标签对象提交到git服务器,我们需要进行显式的操作:
$ git push origin v0.1.2 # 将v0.1.2标签提交到git服务器
$ git push origin –tags # 将本地所有标签一次性提交到git服务器
注意:如果想看之前某个标签状态下的文件,可以这样操作
1.$ git tag 查看当前分支下的标签
2.$ git checkout v0.21 此时会指向打v0.21标签时的代码状态,(但现在处于一个空的分支上)
列出标签:
$ git tag # 在控制台打印出当前仓库的所有标签
$ git tag -l 'v0.1.*' # 搜索符合模式的标签
代码git拉取上线
例如: 更新app-conf项目,强制更新里面op-scripts子项目
#git clone https://xiaochun@59.110.12.88/xiaochun/app-conf.git --recursive (递归参数拉取)
#cd app-conf
#git checkout v1.0.0
#git submodule init
#git submodule update
#cd op-scripts
#git tag (显示v1.01,跟父目录提交一块的子目录tag)