【无标题】标签与diff的使用(最详细版)

大家亦可打我的有道云笔记链接进行查看:有道云笔记

                                        标签与diff

一、标签

01.课程引入

像其他版本控制系统(VCS)一样,Git 可以给仓库历史中的某一个提交打上标签,以示重要。 比较有代表性的是人们会使用这个功能来标记发布结点( v1.0、 v2.0 等等)。 在本节中,你将会学习如何列出已有的标签、如何创建和删除新的标签、以及不同类型的标签分别是什么。

02.标签简介

Git 支持两种标签:轻量标签(lightweight)与附注标签(annotated)。

轻量标签很像一个不会改变的分支——它只是某个特定提交的引用。而附注标签(即带有注释的标签)是存储在 Git 数据库中的一个完整对象, 它们是可以被校验的,其中包含打标签者的名字、电子邮件地址、日期时间, 此外还有一个标签信息,并且可以使用 GNU Privacy Guard (GPG)签名并验证。 通常会建议创建附注标签,这样你可以拥有以上所有信息。但是如果你只是想用一个临时的标签, 或者因为某些原因不想要保存这些信息,那么也可以用轻量标签。

03.轻量标签和附注标签

(1)轻量标签

创建轻量标签。

另一种给提交打标签的方式是使用轻量标签。 轻量标签本质上是将提交校验和存储到一个文件中——没有保存任何其他信息。 创建轻量标签,不需要使用 -a、-s 或 -m 选项,只需要提供标签名字:

$ git tag v11.0

(2)创建附注标签

创建附注标签通过命令git tag -a 版本信息 -m 标签信息 创建一个附注标签。

$ git tag -a v2.2 -m '这是一条附注标签'

(3)查看附注标签和轻量标签

这时,你可已通过命令git reflog或者git tag查看操作的命令,如果在标签上运行 git show,你不会看到额外的标签信息。 命令只会显示出提交信息:

通过git tag 命令

$ git tag

结果

v11.0

v2.0

v2.1

v2.2

通过

git reflog


结果

228806e (HEAD -> demoo, tag: v2.2, tag: v2.1, tag: v2.0, tag: v11.0) HEAD@{0}: commit:

                                开始

通过git show

git show

结果

Author: qinlugang <qinlugang@ossxp.com> Date: Tue Dec 13 21:31:39 2022 +0800

                                        开始

(4)查找标签版本        

通过命令 git tag -l 要查找的版本号

例子一:

$ git tag -l 'v*'

v11.0

v2.0

v2.1

v2.2

例子二:

$ git tag -l 'v2.1'

v2.1

(5)删除指定标签

通过命令git tag -d 要删除的标签版本号

删除v2.0前

$ git tag

v11.0 v2.0 v2.1 v2.2

删除过后

$ git tag -d 'v2.0'

Deleted tag 'v2.0' (was 5ac2bec) QLG

$ git tag

v11.0

v2.1

v2.2

04、轻量标签与附注标签的相同点

    1. 两者打的标签的作用域是全局的,并非依赖于某一个分支。
    2. 两者只是在打标签的方式上有不一样,其他的标签的查找、删除和查看所有标签等方式的一样。

05、标签的应用场景

当你的项目发展到一定的阶段、里程碑和非常重要的时候就要打上一个标签。

二、diff命令

比较工作区和暂存区(staged,index)相同文件之间的差别

关键命令:git diff

    1. 两文件没有任何差别
      1. 创建一个hellodiff文件并写入“hello world”,并将hellodiff文件添加到暂存区中,查看工作空间,可以看到工作区是干净的

$ echo 'hello world'>hellodiff $ git add . warning: in the working copy of 'hellodiff', LF will be replaced by CRLF the next time Git touches it $ git status On branch demoo Untracked files: (use "git add <file>..." to include in what will be committed) hellodiff nothing added to commit but untracked files present (use "git add" to track)

      1. 使用命令git diff 查看工作区和暂存区相同文件的区别。此时没有任何结果,说明工作区的与暂存区的内容是一致的。

$ git diff

    1. 两文件存在差别
      1. 在上面的例子的基础上对hellodiff文件进行一定的修改,并通过git status命令查看工作区的状态,在通过git diff 查看作区和暂存区(staged,index)相同文件之间的差别此时的git diff命令显示的意义解释
      2.  
#hellodiff没修改前
$ cat hellodiff
hello world
hello python

#通过vi/vim命令对hellodiff文件进行修改,将hello python修改成hello Javaweb
$ vi hellodiff       

修改后:
$ cat hellodiff
hello world
hello Javaweb

通过git status命令看工作区暂存区状况。
$ git status
On branch demoo
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   hellodiff

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   hellodiff


通过git diff命令比较工作区和暂存区的状态       
$ git diff
warning: in the working copy of 'hellodiff', LF will be replaced by CRLF the next time Git touches it
diff --git a/hellodiff b/hellodiff
index 883d68b..09e9ccf 100644
--- a/hellodiff
+++ b/hellodiff
@@ -1,2 +1,3 @@
 hello world
-hello python
+hello Javaweb
+

通过命令git add .后被修改的hellodiff后查看hellodiff中的内容,可以看到hello python已经被hello Javaweb所替代了

$ cat hellodiff

hello world

hello Javaweb

比较工作区与版本库中的提交的差别

关键命令:git diff 提交链上某一个的id

工作区比较最新的一次提交中的文件的差别git diff HEAD

      1. 使用git diff HEAD命令

$ git diff HEAD

diff --git a/hellodiff b/hellodiff

index 2a65205..09e9ccf 100644

--- a/hellodiff

+++ b/hellodiff

@@ -1,2 +1,3 @@

hello world

-hello Java Web

+hello Javaweb +

比较暂存区和版本库中的差别

关键命令:git diff --cached

命令意义:比较最新的提交与暂存区的差别

使用命令git diff --cached

$ git diff --cached
diff --git a/hellodiff b/hellodiff
index 2a65205..09e9ccf 100644
--- a/hellodiff
+++ b/hellodiff
@@ -1,2 +1,3 @@
 hello world
-hello Java Web
+hello Javaweb
+

三、知识拓展

命  令:git blame

命令选项:

:获取git blame 的基本用法。

文件名:获取该文件名的每一行代码是由那些人进行填写。

举例:

$ git blame test

228806eb (张三 2022-12-13 21:31:39 +0800 1) seg

0719a338 (张三 2022-12-14 12:24:42 +0800 2) 测试

0719a338 (张三 2022-12-14 12:24:42 +0800 3)saeg

0719a338 (张三 2022-12-14 12:24:42 +0800 4) sleg

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值