4、标签管理(git笔记)

一、创建标签

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

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

但是这个标签只是针对当前的master分支,可以在一个项目之中一定会有很多个提交点,那么如何为之前的提交点打上标签?这里只需要找到提交号即可。

  • 查询日志
git log --pretty=oneline --abbrev-commit

在日志上都会有提交号,下面我们针对一个提交号进行标签的定义。

  • 为某个提交点(d032312)设置标签
git tag v0.6 d032312
git tag
2

但是此时只是显示一些很简单的标签信息,并不是很详细,那如何查看更加详细的标签信息?

  • 查看标签的详细信息
git show v0.6
3

在之前所建立的标签都没有设置注释信息。

  • 为标签添加时设置注释信息
git tag v0.7  7759687 -m "commit id 7759687"
4

二、加密

标签创建完之后如果开发者只希望自己能修改标签,那么就必须进行加密的处理,而可以使用GPG工具实现加密。

  • 下载地址:www.gnupg.org,安装过程很简单,这里不细说。安装之后在命令行使用命令:gpg -help进行验证。下面我们通过一个示例对此工具进行一个说明。

  • 生成自己的密钥

gpg --gen-key

5

这里询问我们使用什么样的加密算法,我们选择之前使用过的RSA算法,这也是默认的选择,我们直接回车。
6

这里询问我们密码长度,默认的长度为2048,这里我们选择默认,直接回车。
7

这里让我们选择密钥的有效日期,这里我们选择永不过期。输入0回车。之后再输入y表示确认。
8

让我们输入自己的个人信息。
9

其中comment表示一些注释信息,之后提示我们是否进行修改,这里信息我们已经确认过了,不需要修改,这里我们直接输入o回车。
10

随后提示我们设置私钥的密码,为了防止有人恶意修改。我们还是输入之前的密钥walp
11.png

之后就会出现一些提示信息。
12

在这里面有几个重要的信息,密钥号:5B24057A。用户ID:yjaal (my gpg information) <yjjal1314@gmail.com>(用户名 注释 邮箱)。

  • 为了方便,最好还生成一张撤销的证书,为的是以后如果密钥过期,可以通过服务器进行撤销。
gpg --gen-revoke 5B24057A
13

这里提示是否进行撤销,输入y回车。


14

这里输入0回车。


15

然后输入我们之前设置的密钥。
16

此时会出现
17

自动生成了相关的密钥信息。

  • 通过gpg工具列出所有的密钥
gpg --list-keys
18
  • 实现文件的加密与解密处理
    比如现在E:\github\LocalSource\gpgtest下有一个Demo.txt的文件:
Hello World!!!

为了传入的安全,我们在传输之前对其加密

gpg --recipient 5B24057A --output Demo.en.txt --encrypt Demo.txt

19

这里就在此目录中生成了一个Demo.en.txt的加密文件。这里的命令中5B24057A是我们之前注册的用户的密钥号,我们给加密之后的文件名为Demo.en.txt--encrypt指定要加密的文件。

  • 对加密的文件进行解密
gpg --decrypt Demo.en.txt --output demo.de.txt

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

gpg Demo.en.txt

20

这里在中途可能会让我们输入密码信息,填入之后我们需要给解密后的文件起名,这里起名为Demo.de.txt。此时我们在此目录中就会多出这样一个文件,此文件的内容和之前的文件Demo.txt的内容是一致的。这样就实现了一个解密操作。

三、使用GPG生成标签

现在我们已经生成好了一个密钥,名称是5B24057A。标签的加密只需要增加一个-s的参数。

  • 使用GPG加密标签
git tag -s v0.9 -m "gpg handle tag" 418aba9
21

这里我们对最新的一个提交点生成标签,但是从提示信息来看并不能进行加密处理。我们需要在加密时使用一个指定的签名,所以实际上标签的加密处理应该这样做:

git tag -u "yjaal" -s v0.9 -m "gpg handle tag" d032312

22

命令中我们需要指定之前我们设置的用户,之后会提示我们输入密钥。注意:这里如果还出现错误,我们需要配置一个环境变量,在系统变量中点击新建:
23

之后点击确定,应该就可以了。
此时其他的开发者是不可能修改此标签的。查询此标签:

git show v0.9
24

四、标签管理

  • 删除标签
git tag -d v1.0
25

这样的标签只是进行了本地的删除,我们也可以提交到服务器上去。

  • 将标签推送到服务器上
git push origin v0.9
git push origin v0.7

26

完成之后我们进行查看
27

可以看到2 releases,进去
28

但是这样一个一个的进行推送很麻烦,下面我们一次性推送多个标签到服务器:

git push origin --tags
  • 删除某个标签
git tag -d v0.7
29
  • 删除服务器上的标签
git push origin :refs/tags/v0.7
30

最后:这就是标签的基本操作,其实就是为提交点起了个别名,方便我们进行管理。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 14,646评论 9 163
  • GIT分布式版本控制系统最佳实践 这篇文章来自于老男孩教育高级架构师班12期的徐亮偉同学。 首先感谢老男孩架构师班...
    meng_philip123阅读 8,844评论 4 36
  • 本文为 Git教程的学习笔记,教程源自廖雪峰的博客。这是一个由浅入深,学完后能立刻上手的Git教程。另,附上另一本...
    七弦桐语阅读 11,376评论 5 47
  • 远程仓库 到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题...
    归云丶阅读 5,946评论 0 5
  • 今天下雨了,宝贝没来接妈咪。一回到家奶奶说今天挺乖的,下午还自己睡觉了。 那天在大V店买的书到了,数一数,亲了几下...
    忆记阅读 3,424评论 0 1