Git相关

git submodule功能

git submodule(为了后续代码配置分离管理)

抽取项目公共模块,多项目共用
B需要添加于A项目中的子模块,用于相关代码与配置分别更新

1.添加子模块
#git clone  https://xiaochun@59.110.12.88/ xiaochun/app-conf.git
接下来进入刚克隆下来的项目,添加B子模块
#cd app-conf
#git submodule add  https:// xiaochun@59.110.12.88/ xiaochun/op-scripts.git
#git status 查看下状态会发现:
还多了一个.gitmodules 文件,这个文件就是用于记录子模块的路径已经远程版本库地址的地方,这两个文件处于待提交的状态,下面把这个修改提交一下
在app-conf目录进行提交新子模块添加

2.更新子模块
#cd op-scripts
修改下文件内容,然后进行提交上去
#git pull origin master 提交成功
再进入到顶级项目app-conf中,查看一下项目状态
#git status
就会看到明显“no changes added to commit (use "git add" and/or "git commit -a")”
其实,Git 在顶级项目中记录了一个子模块的提交日志的指针,用于保存子模块的提交日志所处的位置,以保证无论子模块是否有新的提交,
在任何一个地方克隆下顶级项目时,各个子模块的记录是一致的。避免因为所引用的子模块不一致导致的潜在问题。如果我们更新了子模块,
我们需要把这个最近的记录提交到版本库中,以方便和其他人协同。这也是刚刚添加完子模块后还要在顶级项目中提交一次的原因。
#cd app-conf
#git pull origin master
提交完子目录后提交父目录

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)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值