Git标签管理

1.简单介绍

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。

Git有commit,为什么还要引入tag?

eg:

“请把上周一的那个版本打包发布,commit号是6a5819e...”

“一串乱七八糟的数字不好找!”

如果换一个办法:

“请把上周一的那个版本打包发布,版本号是v1.2”

“好的,按照tag v1.2查找commit就行!”

所以,tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起

2.创建标签

步骤:

先切换到需要打标签的分支上:

凌çî风úÄ@凌çî风úÄplus MINGW64 ~ (main)
$ git branch
  dev
* main
凌çî风úÄ@凌çî风úÄplus MINGW64 ~ (main)
$ git checkout dev
Switched to branch 'dev'
A       hello.py

敲命令git tag <name>打一个新标签:

凌çî风úÄ@凌çî风úÄplus MINGW64 ~ (dev)
$ git tag v1.0

命令git tag查看所有标签:

凌çî风úÄ@凌çî风úÄplus MINGW64 ~ (dev)
$ git tag
v1.0

默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,可以找到历史提交的commit id,然后打上就可以了:

凌çî风úÄ@凌çî风úÄplus MINGW64 ~ (dev)
$ git log --pretty=oneline --abbrev-commit
ff0c78c (HEAD -> dev, tag: v1.0) fix bug 101
d769829 merged bug fix 101
890af29 fix bug 101
4ab0e03 merge with no-ff
ce4820a add merge
927fe64 conflict fixed
f059fde & simple
1256ca3 AND simple
2df8fcc branch test
0baf1fe add test.txt
4541db5 remove test.txt
c8a038f add test.txt
9ccdba9 it is terrible
4c7b91a wrote a readme tet

比如对add merge这次提交打标签,它对应的commit id是ce4820a,敲入命令:

凌çî风úÄ@凌çî风úÄplus MINGW64 ~ (dev)
$ git tag v0.9 ce4820a
凌çî风úÄ@凌çî风úÄplus MINGW64 ~ (dev)
$ git tag
v0.9
v1.0
凌çî风úÄ@凌çî风úÄplus MINGW64 ~ (dev)
$ git show v0.9
commit ce4820aa26e21695b4f9b5beaac2125aa2fd3ag: v0.9)
Author: LinFeng <2010947927@qq.com>
Date:   Sun Aug 7 21:54:10 2022 +0800
    add merge
diff --git a/readme.txt b/readme.txt
index fd415c4..5605607 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,7 +1,7 @@
 Git is a good software
 Git is so beautiful
 <<<<<<< HEAD
-Creating a new branch is quick and simple
+Creating a new branch is quick a simple yes
 =======
 Creating a new branch is quick AND simple.

命令git tag查看标签:还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字

凌çî风úÄ@凌çî风úÄplus MINGW64 ~ (dev)
$ git tag -a v0.1 -m"version 0.1 released"

标签不是按时间顺序列出,而是按字母排序的。用git show <tagname>查看标签信息:

凌çî风úÄ@凌çî风úÄplus MINGW64 ~ (dev)
$ git show v0.1
tag v0.1
Tagger: LinFeng <2010947927@qq.com>
Date:   Sat Aug 13 10:53:48 2022 +0800

version 0.1 released

commit 9ccdba9bfd012cbf1362705b32fb6e274be17ag: v0.1)
Author: LinFeng <2010947927@qq.com>
Date:   Thu Aug 4 23:44:44 2022 +0800

    it is terrible

diff --git a/readme.tet b/readme.tet
index 6db9469..68d9ec9 100644
--- a/readme.tet
+++ b/readme.tet
@@ -1,2 +1,4 @@
 Git is a good software
-Git is a very good
+Git is a very good software
+Git has a mutable index called stage
+Git tracks changes of files

可以看到,v0.9确实打在add merge这次提交上。

注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。

小结

命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;

命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;

命令git tag可以查看所有标签。

3.操作标签

删除操作

标签打错了的删除方法

凌çî风úÄ@凌çî风úÄplus MINGW64 ~ (dev)
$ git tag -d v0.1
Deleted tag 'v0.1' (was 769a661)

创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除

如果要推送某个标签到远程

推送单个

git push origin <tagname>:

凌çî风úÄ@凌çî风úÄplus MINGW64 ~ (dev)
$ git push origin v1.0
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 346 bytes | 173.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:LinFeng0113/Qt.git
 * [new tag]         v1.0 -> v1.0

一次性推送全部尚未推送到远程的本地标签:$ git push origin --tags

标签已经推送到远程后的删除

先从本地删除

凌çî风úÄ@凌çî风úÄplus MINGW64 ~ (dev)
$ git tag -d v1.0
Deleted tag 'v1.0' (was ff0c78c)

再从远程删除

凌çî风úÄ@凌çî风úÄplus MINGW64 ~ (dev)
$ git push origin :refs/tags/v1.0
To github.com:LinFeng0113/Qt.git
 - [deleted]         v1.0

要看看是否真的从远程库删除了标签,可以登陆GitHub查看

小结

命令git push origin <tagname>可以推送一个本地标签;

命令git push origin --tags可以推送全部未推送过的本地标签;

命令git tag -d <tagname>可以删除一个本地标签;

命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

4.使用GitHub

实例

在GitHub上,利用Git极其强大的克隆和分支功能,广大人民群众真正可以第一次自由参与各种开源项目了

如何参与一个开源项目?

比如人气极高的bootstrap项目,这是一个非常强大的CSS框架,

这个克隆别人的项目仓库不要随便克隆

访问它的项目主页https://github.com/twbs/bootstrap,点“Fork”就在自己的账号下克隆了一个bootstrap仓库,然后,从自己的账号下clone:

git clone git@github.com:xxxxx(自己的账号)/bootstrap.git

一定要从自己的账号下clone仓库,这样才能推送修改。如果从bootstrap的作者的仓库地址git@github.com:twbs/bootstrap.git克隆,因为没有权限,将不能推送修改。

Bootstrap的官方仓库twbs/bootstrap、你在GitHub上克隆的仓库my/bootstrap,以及你自己克隆到本地电脑的仓库,他们的关系就像这样

┌─ GitHub ────────────────────────────────────┐

│ │

│ ┌─────────────────┐ ┌─────────────────┐ │

│ │ twbs/bootstrap │────>│ my/bootstrap │ │

│ └─────────────────┘ └─────────────────┘ │

│ ▲ │

└──────────────────────────────────┼──────────┘

┌─────────────────┐

│ local/bootstrap │

└─────────────────┘

如果想修复bootstrap的一个bug,或者新增一个功能,立刻就可以开始干活,干完后,往自己的仓库推送。

如果希望bootstrap的官方库能接受你的修改,你就可以在GitHub上发起一个pull request。当然,对方是否接受你的pull request就不一定了。

小结

在GitHub上,可以任意Fork开源仓库

自己拥有Fork后的仓库的读写权限;

可以推送pull request给官方仓库来贡献代码。

5.使用Gitee

问题

使用GitHub时,国内的用户经常遇到的问题是访问速度太慢,有时候还会出现无法连接的情况

解决办法

使用国内的Git托管服务——Gitee(gitee.com)。Gitee也提供免费的Git仓库。还集成了代码质量检测、项目演示等功能。对于团队协作开发,Gitee还提供了项目管理、代码托管、文档管理的服务,5人以下小团队免费。

使用Gitee和使用GitHub类似,也是需要注册账户,上传公钥等等,具体操作自行实现https://www.liaoxuefeng.com/wiki/896043488029600/1163625339727712

一个本地库是能既关联GitHub,又关联Gitee的,但是远程库名称不能一样

git给远程库起的默认名称是origin,如果有多个远程库,需要用不同的名称来标识不同的远程库
以learngit本地库为例,先删除已关联的名为origin的远程库:
先关联GitHub的远程库:
再关联Gitee的远程库:
用git remote -v查看远程库信息,可以看到两个远程库:
这样一来,我们的本地库就可以同时与多个远程库互相同步:

以上就是标签管理的所有内容!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
视频详细讲解,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 课程内容: 1.版本管理工具概念 2. 版本管理工具介绍 2.1版本管理发展简史(维基百科) 2.1.1 SVN(SubVersion) 2.1.2 Git 3. Git 发展简史 4. Git 的安装 4.1 git 的下载 4.2 安装 5. Git 工作流程 5.1 Git 初始化 5.2 git 流程 5.2.1 流程图 5.2.2概念即详解 6.Git 的基本使用01-TortoiseGit 操作本地仓库 6.1 初始化仓库 6.2 添加文件 6.3 提交文件至本地仓库 6.4 修改文件,与再次提交文件 6.5 文件状态讲解 6.6 修改文件,不提交和上一个版本比较差异(diff) 6.7 查看提交历史记录 6.8 回退至历史版本 6.9 文件删除 6.9.1本地删除与恢复 6.9.2从版本库删除 6.9.3从版本库删除,但是不删除本地 6.10 忽略提交 7. Git 的基本使用02-TortoiseGit 操作本地仓库(分支) 7.1 分支的概念 7.2 为何要使用分支 7.3 创建分支 7.4 分支的查看切换 7.4.1查看分支 7.4.2切换分支 7.5 分支的合并与删除 7.5.1合并 7.5.2删除分支 8.tag 标签 8.1 标签的概念 8.2 标签的创建(tag) 8.3 标签的切换与删除 9. 远程仓库 9.0 局域网仓库 9.0.1本地相对路径,多个文件夹之间共享代码 9.0.2开启局域网共享代码 9.1 常用远程仓库托管服务 9.2 码云账号注册 9.3 创建远程仓库 9.4 把本地代码推送到远端 9.5 从远程仓库克隆代码 9.6 代码的修改与提交,查看历史 9.7 ssh 连接概述 9.8 ssh 密钥的生成 9.9 ssh 密钥配置 9.10 ssh 方式克隆/提交代码: 9.11. 远程仓库的其他操作 9.12 利用 gitee 搭建个人主页 10.命令行-- git基本操作 10.1 介绍 10.2 环境配置 10.3 初始化本地仓库 init 10.4 克隆 clone 10.5 查看状态 status 10.6 add 10.7 commit 10.8 删除 rm 11. 命令行--git 远程仓库操作 11.1 查看远程 11.2 添加/移除远测仓库 11.3 从远程仓库获取代码 12. 命令行-- 分支 13 . 命令行 --tag 14. 案例
Git标签Git版本控制系统的一种重要的管理机制,可以用来标记特定的提交点,便于开发者和团队在日后快速回溯到某个特定的版本,或者标识重要的版本发布点,方便发布管理Git标签管理主要包括两个方面:创建标签和删除标签。 创建标签: 1. 打标签命令格式:git tag <tagname> 打一个轻量标签,即不附带额外的信息,只是给当前的提交记录打上一个标记,例如:git tag v1.0.0 2. 创建带有附注的标签,即在打标签的同时可以添加一些额外的信息,例如:git tag -a v1.0.0 -m "release version 1.0.0" -a 表示创建附注标签,-m 表示添加标签信息。 3. 创建签名标签,即在创建标签的同时进行签名,确保标签的真实性和完整性,例如:git tag -s v1.0.0 -m "signed release version 1.0.0" -s 表示创建签名标签,需要先配置GPG并创建GPG签名。 删除标签: 1. 删除本地标签git tag -d <tagname> 2. 删除远程标签git push origin :refs/tags/<tagname> 除了上述基本的标签管理操作,Git还提供了一些其他的标签管理命令,例如: 1. 查看标签git tag 或者 git tag -l <pattern> 2. 查看标签信息:git show <tagname> 3. 移动标签git tag -f <tagname> <commit> 4. 共享标签git push origin <tagname>,git push origin --tags 总之,Git标签管理Git版本控制系统中重要的一部分,可以帮助开发者和团队更好地管理和维护代码版本。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值