05、【GIT完全讲解】GIT标签管理
视频下载地址:链接: 密码:82bp
1、创建标签
标签可以简单的理解为属于分支定义的别名,分支本身都会进行指针的配置(分支都会指向某一个 id),但是标签却是一个固定的内容,可以说,标签永远指向一个 id。
现在加入说已经存在有两个分支。
范例:为定义一个标签
· 是程序最终的发布版本,可以说,就是完整的开发程序。
git tag v1.0
范例:察看所有的标签
git tag
但是这个标签也只是针对于当前的分支所打上的标签,可是在一个项目之中一定会有许多的提交点,那么如果要为之前的提交点打上标签该怎么做呢?只需要找到 id即可。
范例:查询日志
git log --= ---
在这些日志上都会存在有 id,那么下面针对于一个 id进行标签的定义。
范例:为“”设置标签
git tag v0.6
但是此时只是显示一些很简单的标签信息并不是很好,所以下面希望可以察看标签的完整内容。
范例:察看标签的完整信息
git show v0.6
在之前所建立的标签实际上都没有设置注释信息,那么秒年可以定义一些注释信息。
范例:添加标签时设置注释
git tag -a v0.7 -m "test "
随后再次查询标签的详细信息。
2、利用GPG实现标签加密
标签创建完成之后如果开发者只希望可以由自己来修改标签,那么就必须进行加密的处理,而可以使用GPG工具实现加密操作。下载地址:
在GPG工具出现之前,有一个PGP的开发工具(收费),所以后来由GNU开发出了一个新的PGP工具的替代品,而这个名称就是GnuPG,后来简称为GPG工具。
网盘地址:
2.1、GPG工具的基本使用
如果拿到了GPG工具,那么用户可以直接进行安装。而GPG工具的所有操作都可以在命令行方式下完成。
范例:测试安装是否成功
gpg -help
如果出现以上的提示信息则表示gpg安装成功的,但是下面通过一个简单的文件加密和解密处理,来为大家说明一下GPG工具的使用。
1、 生成自己的密钥。
gpg --gen-key
这些是一些版权声明,随后会询问用户使用是什么样的加密算法,现在使用RSA算法(默认的选择)。
随后会询问用户的密钥长度(理论上密钥越长,那么安全性就越高)默认的密钥长度为2048位。
随后会出现一个界面,询问用户密钥的有效期,本次选择密钥为永不过期。
本次输入“y”表示确认以上的配置信息,那么随后会让用户输入自己的个人信息。
而后接着就会询问你是否需要进行修改,由于信息已经确认过了,所以本次直接输入“o”。
随后会出现一个提示框,主要的目的是让用户设置一个私钥的密码,为了防止有人恶意修改而提供的,本次输入的密码为“”
那么这个时候就会出现一系列的提示信息了。
那么在这里面有几个重要的信息:
· 密钥号:;
· 用户ID: (yootk edu) (真实姓名 注释 邮箱)
2、 实际上为了日后的管理方便,最好在生成一张撤消的整数,为的是以后如果密钥过期可以通过服务器进行撤消。
gpg --gen-
这个时候会自动的生成以下的密钥信息。
3、 列出所有的密钥。
gpg --list -keys
4、 实现简单的文件加密与解密处理。
· 现在在D盘下有一个demo.txt的文件;
世界,你好!
hello world
· 为了安全起见在进行传输的时候应该为其进行加密处理。
· 实现加密处理
gpg -- -- demo.en.txt -- demo.txt
此时的demo.txt的文件已经加密到了demo.en.txt文件之中。
· 进行加密文件的解密操作
gpg demo.en.txt
此时要进行解密处理,而后会提示用户输入的之前的操作密码。
所以,GPG的工具实际上使用起来都是很容易的。
2.2、使用GPG生成标签
在操作之前一定要保证你的电脑上已经配置好了GPG工具。
现在已经有了一个生成的密钥,名称为“”,所以下面进行加密标签,标签的加密只需要增加一个“-s”的参数即可。
范例:使用GPG加密标签
git tag -s v0.9 -m "gpg tag"
但是此时发现并不能够进行加密处理。我们需要在加密时使用一个指定签名,所以实际上的标签的加密处理应该输入如下的指令完成。
git tag -u "" -s v0.9 -m "gpg tag"
所以此时,其他的开发者是不可能修改此标签的。
范例:查询v0.9标签
git show v0.9
那么此时就是使用加密处理后的标签操作。
3、标签管理
1、 删除标签
git tag -d v1.0
这样的标签只是进行了本地的标签删除,而标签也可以提交到服务器上去。
2、 将标签推送到服务器上;
git push v0.9
git push v0.7
推送完成之后可以进行标签的察看。
3、 但是这样进行一个个的标签推送很麻烦,所以下面可以一次性推送多个标签过去;
git push –tags
那么此时本地所有未推送的标签都被推送到了服务器端上。