4、标签管理(git笔记)

一、创建标签 标签可以简单理解为属于分支定义的别名。分支本身都会进行指针的配置(分支都会指向某一个提交点),标签却是一个固定的内容,即标签永远指向一个提交点。现在如果已经有两个分支了。

  • 为master定义一个标签。master分支是程序的最终发布版本,可以说,master就是一个完整的开发程序,我们给其加上一个标签
git tag v1.0

  • 查看所有的标签
git tag

4、标签管理(git笔记)
文章图片
1
但是这个标签只是针对当前的master分支,可以在一个项目之中一定会有很多个提交点,那么如何为之前的提交点打上标签?这里只需要找到提交号即可。
  • 查询日志
git log --pretty=oneline --abbrev-commit

在日志上都会有提交号,下面我们针对一个提交号进行标签的定义。
  • 为某个提交点(d032312)设置标签
git tag v0.6 d032312 git tag

4、标签管理(git笔记)
文章图片
2
但是此时只是显示一些很简单的标签信息,并不是很详细,那如何查看更加详细的标签信息?
  • 查看标签的详细信息
git show v0.6

4、标签管理(git笔记)
文章图片
3
在之前所建立的标签都没有设置注释信息。
  • 为标签添加时设置注释信息
git tag v0.77759687 -m "commit id 7759687"

4、标签管理(git笔记)
文章图片
4 二、加密 标签创建完之后如果开发者只希望自己能修改标签,那么就必须进行加密的处理,而可以使用GPG工具实现加密。
  • 下载地址:www.gnupg.org,安装过程很简单,这里不细说。安装之后在命令行使用命令:gpg -help进行验证。下面我们通过一个示例对此工具进行一个说明。
  • 生成自己的密钥
gpg --gen-key


4、标签管理(git笔记)
文章图片
5
这里询问我们使用什么样的加密算法,我们选择之前使用过的RSA算法,这也是默认的选择,我们直接回车。
4、标签管理(git笔记)
文章图片
6
这里询问我们密码长度,默认的长度为2048,这里我们选择默认,直接回车。
4、标签管理(git笔记)
文章图片
7
这里让我们选择密钥的有效日期,这里我们选择永不过期。输入0回车。之后再输入y表示确认。
4、标签管理(git笔记)
文章图片
8
让我们输入自己的个人信息。
4、标签管理(git笔记)
文章图片
9
其中 comment表示一些注释信息,之后提示我们是否进行修改,这里信息我们已经确认过了,不需要修改,这里我们直接输入o回车。
4、标签管理(git笔记)
文章图片
10
随后提示我们设置私钥的密码,为了防止有人恶意修改。我们还是输入之前的密钥 walp
4、标签管理(git笔记)
文章图片
11.png
之后就会出现一些提示信息。
4、标签管理(git笔记)
文章图片
12
在这里面有几个重要的信息,密钥号: 5B24057A。用户ID: yjaal (my gpg information) (用户名 注释 邮箱)。
  • 为了方便,最好还生成一张撤销的证书,为的是以后如果密钥过期,可以通过服务器进行撤销。
gpg --gen-revoke 5B24057A

4、标签管理(git笔记)
文章图片
13
这里提示是否进行撤销,输入y回车。

4、标签管理(git笔记)
文章图片
14
这里输入0回车。

4、标签管理(git笔记)
文章图片
15
然后输入我们之前设置的密钥。
16
此时会出现
4、标签管理(git笔记)
文章图片
17
自动生成了相关的密钥信息。
  • 通过gpg工具列出所有的密钥
gpg --list-keys

4、标签管理(git笔记)
文章图片
18
  • 实现文件的加密与解密处理
    比如现在E:\github\LocalSource\gpgtest下有一个Demo.txt的文件:
Hello World!!!

为了传入的安全,我们在传输之前对其加密
gpg --recipient 5B24057A --output Demo.en.txt --encrypt Demo.txt


4、标签管理(git笔记)
文章图片
19
这里就在此目录中生成了一个 Demo.en.txt的加密文件。这里的命令中 5B24057A是我们之前注册的用户的密钥号,我们给加密之后的文件名为 Demo.en.txt--encrypt指定要加密的文件。
  • 对加密的文件进行解密
gpg --decrypt Demo.en.txt --output demo.de.txt

这里我们使用此命令不知道有什么问题,下面我们使用分布操作:
gpg Demo.en.txt


4、标签管理(git笔记)
文章图片
20
这里在中途可能会让我们输入密码信息,填入之后我们需要给解密后的文件起名,这里起名为 Demo.de.txt。此时我们在此目录中就会多出这样一个文件,此文件的内容和之前的文件 Demo.txt的内容是一致的。这样就实现了一个解密操作。
三、使用GPG生成标签 现在我们已经生成好了一个密钥,名称是5B24057A。标签的加密只需要增加一个-s的参数。
  • 使用GPG加密标签
git tag -s v0.9 -m "gpg handle tag" 418aba9

4、标签管理(git笔记)
文章图片
21
这里我们对最新的一个提交点生成标签,但是从提示信息来看并不能进行加密处理。我们需要在加密时使用一个指定的签名,所以实际上标签的加密处理应该这样做:
git tag -u "yjaal" -s v0.9 -m "gpg handle tag" d032312


4、标签管理(git笔记)
文章图片
22
命令中我们需要指定之前我们设置的用户,之后会提示我们输入密钥。 注意:这里如果还出现错误,我们需要配置一个环境变量,在系统变量中点击新建:
4、标签管理(git笔记)
文章图片
23
之后点击确定,应该就可以了。
此时其他的开发者是不可能修改此标签的。查询此标签:
git show v0.9

4、标签管理(git笔记)
文章图片
24 四、标签管理
  • 删除标签
git tag -d v1.0

4、标签管理(git笔记)
文章图片
25
这样的标签只是进行了本地的删除,我们也可以提交到服务器上去。
  • 将标签推送到服务器上
git push origin v0.9 git push origin v0.7


4、标签管理(git笔记)
文章图片
26
完成之后我们进行查看
4、标签管理(git笔记)
文章图片
27
可以看到 2 releases,进去
4、标签管理(git笔记)
文章图片
28
但是这样一个一个的进行推送很麻烦,下面我们一次性推送多个标签到服务器:
git push origin --tags

  • 删除某个标签
git tag -d v0.7

4、标签管理(git笔记)
文章图片
29
  • 删除服务器上的标签
git push origin :refs/tags/v0.7

4、标签管理(git笔记)
文章图片
30 【4、标签管理(git笔记)】最后:这就是标签的基本操作,其实就是为提交点起了个别名,方便我们进行管理。

    推荐阅读