继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

分布式版本控制系统 Git | 六

大梦三千秋
关注TA
已关注
手记 173
粉丝 7
获赞 168

分布式版本控制系统六


Git基础| 标签管理


查看标签

使用git tag是查看所有的标签:

$ git的标签
V0.2 
V1.0 ```


这个命令以字母顺序输出结果的。

#### 创建标签

使用` git tag <名称> `命令,是创建标签最简单的方式。例如:

```代码
$ git的标签v1.2的```


使用` git的标签`查看标签

```代码
$ git的标签
V0.2 
V1.0 
V1.2 ```


这个命令,默认标签是打在最新提交的 `commit` 上的。这种方式打的标签属于轻量标签(lightweight)。

轻量标签(lightweight): 是一个特定提交的引用。

还有一个标签是带注释的标签,就是附注标签(annotated)。附注标签(annotated) 是存储在 Git 数据库的一个完整对象。创建附注标签,Git 会创建一个标签对象,然后编写一个引用以指向该对象,而不是直接指向提交。

附注标签,可以使用 `git tag`,用 `-a` 指定标签名,`-m` 指定说明文字:

```code
$ git tag -a v1.2.1 -m "change version"
$ git tag
v0.2
V1.0 
V1.2 
V1.2.1 ```


如果没有为附注标签指定一条信息,Git 会运行编辑器要求输入信息。

这时可以通过 `git show` 查看标签的信息与对应的提交信息:

```code
$ git show v1.2.1
tag v1.2.1
Tagger: 大梦三千秋 <yiluolion@gmail.com>
Date:   Sat Feb 8 19:39:26 2020 +0800

change version

commit 17a7565ace9d89ad1deb1a0974de053e68455767 (HEAD -> master, tag: v1.2.1, tag: v1.2)
Merge: 4ca343d f6e0cfb
Author: 大梦三千秋 <yiluolion@gmail.com>
Date:   Thu Feb 6 16:59:56 2020 +0800

    Fix issue 008 and update

这里输出的信息,包括打标签者的信息,打标签的日期时间,注释信息,然后就是显示具体提交的信息。

补充标签

因为打标签,默认是打在最新提交的commit上的。若是有时候,忘记打标签,可以在后续补充打标签。

方法是找到历史提交的commit id,然后补充打上去:

$ git log --pretty = oneline --abbrev-commit 
17a7565(HEAD-> master,标签:v1.2.1,标签:v1.2)修复问题008和更新
4ca343d修复问题008 
f6e0cfb(标签:v1 .0,开发人员)更新readme.md。
24c7079(标记:v0.2)合并分支
30e4b10合并分支' 
dev'80565d0重命名文件
ebbd604添加DM_FILE 
b815ff0更新readme.txt。```


假设要对`加DM_FILE `这次提交打标签,对应的提交ID是` ebbd604 `,只要输入如下的命令即可补充标签:

```code
$ git tag -a v0.1 ebbd604
$ git tag
v0.1
v0.2
v1.0
v1.2

$ git show v0.1
tag v0.1
Tagger: 大梦三千秋 <yiluolion@gmail.com>
Date:   Sat Feb 8 19:48:50 2020 +0800

version 0.1

commit ebbd604310d486a39062c378dff2f9242f10b381 (tag: v0.1)
Author: 大梦三千秋 <rhythmgolion@gmail.com>
Date:   Thu Feb 6 14:51:31 2020 +0800

    add DM_FILE
...

推动标签

默认情况下,GIT中推命令并不会传送标签到远程仓库服务器上面。创建完标签后,必须显式地推送标签到共享服务器上。

使用git push <remote> <tagname>进行推进:

$混帐推股份公司V1.2.1 
枚举对象:1,完成。
计数对象:已完成100%(1/1)。
写入对象:100%(1/1),183个字节| 已完成61.00 KiB / s 
总计1(增量0),再使用0(增量0)
远程:版本GITEE.COM [GNK-3.8] 
为了gitee.com:damengsanqianqiu/about_git.git 
* [新标签] V1.2.1 - > V1.2.1 `` `


若是,一次性推送全部尚未推送到远程的本地标签,使用` git的推<远程> --tags `:

```code
$ git push ag --tags
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 476 bytes | 158.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-3.8]
To gitee.com:damengsanqianqiu/about_git.git
 * [new tag]         v0.1 -> v0.1
 * [new tag]         v0.2 -> v0.2
 * [new tag]         v1.0 -> v1.0

删除标签

如果标签打错的情况下,是可以删除的,使用下面的命令即可:

$ git的标签-d V0.2 
删除标签'V0.2'(是5f3b0c7)```


这里需要注意,这个操作并不会同步删除已经推送到远程的标签。这时候必须使用下面的命令 `git push <remote> :refs/tags/<tagname>` 来更新远程仓库:

```code
$ git push ag :refs/tags/v0.2
remote: Powered by GITEE.COM [GNK-3.8]
To gitee.com:damengsanqianqiu/about_git.git
 - [deleted]         v0.2

总结

  1. 命令git的标签可以查看所有标签。2。命令GIT中标记<标记名>用于创建轻量标签;3.命令git的标签-a <标记名> -m “blablabla ...”可以指定标签信息,创建注释标签; 4.命令git的推<远程> <tagnmae>引导本地标签到远程;5.命令git的推<远程> --tags推出全部未推送到远程的标签;6。命令git的标签-d <标记名>可以删除一个本地标签;7.命令git的推<远程>:参考文献/标签/ <标记名>可以删除一个远程标签。

以上就是本篇的主要内容


打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP