git分布式管理-头歌实验标签

一、创建标签

任务描述

现在你已经成了项目负责人,由你负责发布版本,你需要在发布一个版本之前,给该版本对应的代码打上标签,以便于管理和标识。

本关任务:为最近一次提交打上标签。

相关知识

在开发过程中,commit ID是一串无序的字符,它虽然能唯一标记一次代码提交,即一个版本。但是,它很难记忆和辨识。所以,为了给不同的版本起一个容易辨识的名字,我们可以给这次提交打上一个标签,用不同的标签来对应不同的版本。这样,就相当于给这次提交生成了一个快照。实际上,在为某次提交创建标签的时候,Git会为标签生成一个指针,以指向其对应的提交。然后,我们就可以通过标签找到对应的提交,这样对我们版本发布和代码审查都很有帮助。

如上图所示,我们为master分支上的三次提交,分别打上0.10.20.3三个标签。这样,当我们说0.1版本的时候,就对应了第一次提交的代码。这种方式大大降低了代码审查、团队交流及版本发布的复杂性。

查看标签

查看标签需要用到git tag命令,其具体使用示例如下:

git tag

这样就能列出所有的标签,显示的标签按字母顺序排列,所以标签的先后并不表示重要程度的轻重。

如果标签过多,而你指向显示指定的某些标签,则可以使用正则表达式:

git tag -l 'v5.1.2.*'

如上,使用-l参数,并使用v5.1.2.*这一正则表达式,就过滤除了符合要求的标签,其中v5.1.2.*为正则表达式,它能够匹配所有前缀为v5.1.2的标签。实际执行过程中会得到类似于下方的输出:

上方输出信息,为我们列出了目前版本库中已有的四个标签。

创建标签
不含附注的标签

创建标签的命令格式为:

git tag 标签名 commitID

参数commitID标识了该标签对应的代码版本,如果不提供commitID,就默认为最近一次提交后的代码打标签。例如:

git tag v1.0
git tag v1.0 7f8buir2

语句1表示,为最新一次提交后的代码打上v1.0的标签;语句2则表示,为指定的版本7f8buir2打上标签v1.0

包含附注的标签

如果需要像提交代码时增加提交日志那样,为每个标签添加说明信息,则需要使用:

git tag -a 标签名 -m "说明信息"

如:

git tag -a v1.0 -m 'version 1.0'

表示为此次打的标签,增加一个version 1.0的说明信息。

在查看标签时,可以使用git show命令,查看某个标签的附注信息。例如:

git show v1.0

表示要查看标签v1.0对应的附注信息。

编程要求

本关的编程任务是,补全右侧代码片段中BeginEnd中间的脚本,为最近一次提交打上标签v1.0

#创建gitTraining文件夹
mkdir gitTraining

#进入gitTraining文件夹
cd gitTraining

#将gitTraining初始化为一个本地仓库
git init

#创建helloGit.txt文件
touch helloGit.txt

#将helloGit.txt添加到暂存区
git add helloGit.txt

#将helloGit.txt提价到本地仓库
git commit -m "Git入门之标签实训第一关"

#请在下面的Bein/End星号线内填写Git命令为最近一次提交打上标签v1.0
#********** Begin **********#
git tag v1.0


#********** End **********#

 二、推送指定标签

任务描述

当你为某个版本打上标签后,就需要将其分享给团队中其他成员,即要将其推送至远程版本库。

本关任务:将指定标签推送至远程仓库。

相关知识
推送指定标签

推送指定标签到远程仓库的Git命令如下:

git push 远程主机名 tag名

其中,远程主机名为远程Git版本库对应的主机名,tag名为准备推送的标签名。

该命令使用示例如下:

git push origin v1.0

该语句表示将v1.0标签,推送到主机名为origin对应的远程仓库。

推送全部标签

推送指定标签需要用到:

git push 远程主机名 --tags 

其使用方法如下:

git push origin --tags

其中origin为远程主机名,这样就能将全部标签推送至远程仓库。

编程要求

平台已经为你准备了本地仓库,进行了两次提交,并为这两次提交依次打上了v1.0v2.0标签,本地仓库的远程仓库地址为/tmp/educoder.git,主机名为origin

本关的编程任务是,补全右侧代码片段中BeginEnd中间的脚本,将本地仓库的v1.0标签推送至远程仓库origin

#进入gitTraining文件夹
cd gitTraining

#请在下面的Bein/End星号线内填写Git命令以将标签v1.0推送至远程仓库origin
#********** Begin **********#

git push origin v1.0 

#********** End **********#

 三、推送全部标签

任务描述

当你为版本打上标签后,就需要将其分享给团队中其他成员,即要将其推送至远程版本库。在前面的关卡中,我们已经学习了如何推送指定标签,但是在有些情况下,比如需要记录产品的各个版本的演变过程,或者和团队其他成员交流不同版本的代码,那么就需要将所有的标签全部推送。

本关任务:将全部标签推送至远程仓库。

编程要求

平台已经为你准备了本地仓库gitTraining,然后进行了两次提交,并为这两次提交依次打上了v1.0v2.0标签,本地仓库的远程仓库地址为/tmp/educoder.git,主机名为origin

本关的编程任务是,补全右侧代码片段中BeginEnd中间的脚本,将本地仓库的所有标签均推送至远程仓库origin

#进入gitTraining文件夹
cd gitTraining

#请在下面的Bein/End星号线内填写Git命令为将所有标签推送至远程仓库
#********** Begin **********#
git push origin --tags

#********** End **********#

 四、删除标签

任务描述

当你为需要发布的版本打上了标签之后,你发现标签打错了,这个时候就需要将该标签删除。

本关任务:删除指定标签。

相关知识
删除本地标签

删除本地标签,需要用到的命令格式为:

 git tag -d 标签名

具体使用方法示例如下:

git tag -d v1.0

这样就能实现删除v1.0标签。

删除远程标签

删除远程tag,可以使用如下命令:

git push origin --delete tag 标签名

或者如下所示的命令:

git push origin :refs/tags/<tagname>

即推送一个空的tag名到远程仓库,其中<tagname>指某个标签的名字。

这两种方式都能实现删除远程的指定标签。

编程要求

平台已经为你准备了本地仓库gitTraining,远程主机名为origin,并进行了一次提交,且为这次提交打上了v1.0的标签。

本关的编程任务是,补全右侧代码片段中BeginEnd中间的脚本,删除本地标签v1.0

#进入gitTraining文件夹
cd gitTraining

#请在下面的Bein/End星号线内填写Git命令以删除标签v1.0
#********** Begin **********#
git tag -d v1.0

#********** End **********#

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟雨平生9527

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值