一、Git 标签的作用

在一个项目中,我们可能需要阶段性地发布一个版本,比如 V1.0V1.0.2V3.2 Beta 之类的,Git 的标签可以满足这个需求。

1 创建标签

前面提到过 GitHub 的 issue 功能,issue 是仓库拥有者在 GitHub 上手动创建的,仓库被 Fork 时 issue 不会跟随。

Tags 通常在本地使用 git 命令创建后推送到 GitHub 上,与 issue 相同的一点,它也只存在于项目仓库内,Fork 或提 PR 都不会带上它。

在多人协作项目中,通常由组长对主仓库设置 Tags,单人项目自然就是自己说了算。

开始操作。首先,克隆仓库、配置信息、查看提交版本历史:

重要的一点,我们创建标签是给具体的某次提交创建的,跟分支无关。创建标签使用 git tag [标签名] -m [备注信息] [提交版本号] 这个命令。其中 -m [备注信息] 可以省略不写,但建议不要省略。如果是给当前分支最新的提交创建标签的话,[提交版本号] 可以省略。

给当前分支当前版本创建一个标签:

2 查看标签

执行 git tag 命令显示仓库中的全部标签列表,执行 git show [标签名] 查看标签详情:

前文已提到,标签是在提交的基础上创建的,如果仓库的多个分支中都有这个提交版本,那么这些分支上就有关于这个提交的相同的标签。

3 删除本地标签

当我们执行 git add [标签名] 创建本地标签后,在仓库主目录的 .git/refs/tags 目录下就会生成一个标签文件:

执行 git tag -d [标签名] 删除本地标签,标签文件也会被删除:

4 将本地标签推送到远程仓库

首先对两个提交版本创建对应的标签:

执行 git push origin [标签名] 推送标签到远程仓库,注意前面的命令都只涉及本地操作不需要联网,此命令需要联网:

我们到浏览器上打开仓库主目录,点击下图红色框可以查看 releases 和 tags :

点 Tags 按钮查看标签:

如果你一口气创建了 6 个标签,当然啦,这种情况很少发生,可以使用 git push origin --tags 命令将全部本地标签推送至远程仓库:

查看远程仓库情况:

5 删除远程仓库标签

如果标签废弃不用或者写错了,可以使用 git push origin :refs/tags/[标签名] 删除远程仓库的标签,命令中的标签名其实也就是文件名:

再次查看远程仓库:

好,删除成功。以上就是关于 Git 标签的创建、查看、推送、删除的操作流程。

查看本地仓库的标签列表:

咦,靠,001 标签怎么还在呢?是的,本地标签需要另外手动删除,上文已演示。

6 签出版本

现在介绍一下关于 “签出版本” 的操作,我们会见到类似这种说明:“如果你从 GitHub 上克隆了这个程序的仓库,那么可以在仓库主目录下执行 git checkout xxx 签出程序的这个版本。” 其实签出版本就是指定某个提交版本上创建一个新的分支。

假定当前的 work 仓库就是一个程序,我们要签出 001 版本,执行以下步骤即可。

首先执行 git checkout [标签名] 切换到之前的某个提交版本,然后执行 git checkout -b [新的分支名] 将此提交版本固定到一个新分支上并切换到此分支:

这样就利用标签完成了提交版本签出的工作。

二、GitHub 的 releases

GitHub 的 releases 是 2013 年发布的新功能,旨在协助软件开发者分发新版本给用户,关于这个功能这里仅作简单介绍。

当项目组织宣布发布一个软件产品的版本,发布过程就是一个将软件交付给最终用户的工作流。版本是具有修改日志和二进制文件的一类对象,它们提供了 Git 工作流之外的完整项目历史,它们也可以从存储库的主页上被访问。发布版 release 附带发布说明和下载软件或源代码的链接。按照许多 Git 项目的约定,发布版本与 Git 的标签 tag 绑定。您可以使用现有的标签,或者让 release 在发布时创建标签。这就是上面查看 GitHub 仓库中标签信息时出现的场景。

标签是 Git 中的概念,而 releases 则是 Github、码云等源码托管商所提供的更高层的概念。Git 本身是没有 releases 这个概念,只有 tag。两者之间的关系则是,release 基于 tag,为 tag 添加更丰富的信息,一般是编译好的文件。

git和github入门实践(5):Git 标签 tags 和 GitHub 版本 releases相关推荐

  1. [github 教程]手把手教你最简单的开源项目托管GitHub入门教程_github 教程

    [github 教程]手把手教你最简单的开源项目托管GitHub入门教程--简介 自从google code关闭了下载服务了之后,GitHub作为了目前最好用的免费 开源 项目托管站点,众多开源项目都 ...

  2. GitHub入门与实践(四)——Git的基本操作从初始化仓库到确认提交是否成功

    一.git init --初始化仓库 在本地建立一个目录,并初始化为仓库 $mkdir git-tutorial  //在本地建立名为 git-tutorial 的目录 $cd git-tutoria ...

  3. 《GitHub入门与实践》第4章 通过实际操作学习Git 基本操作——学习笔记

    文章目录 1. 基本操作 1.1 git init--初始化仓库 1.2 git status--查看仓库的状态 1.3 git add--向暂存区中添加文件 1.4 git commit--保存仓库 ...

  4. 《GitHub入门与实践》第4章 通过实际操作学习Git 分支的操作——学习笔记

    文章目录 2. 分支的操作 2.1 git branch--显示分支一览表 2.2 git checkout -b--创建.切换分支 2.2.1 切换到 feature-A 分支并进行提交 2.2.2 ...

  5. Git学习笔记:标签管理以及GItHub

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  6. 轻松Git与Github入门

    文章目录 前言 一.版本控制系统介绍 1.版本控制系统的概念 2.版本控制系统功能 3.版本控制系统分类 二.Git 与GitHub 简介 1.Git 2.GitHub 三.Git账户注册与管理 1. ...

  7. Git与Github入门资料

    Git与Github入门资料 Git主要优势及安装 git,一个非常强大的版本管理工具.Github则是一个基于Git的日益流行的开源项目托管库.Git与svn的最大区别是,它的使用流程不需要联机,可 ...

  8. Git与Github入门(一)

    Git与Github入门(一) 环境: Git与GitHub的来历 Linux 之父 Linus 在 1991 年创建开源的 Linux 操作系统之后,多年来依靠全世界广大热心志愿者的共同建设,经过长 ...

  9. Git GitHub 入门篇

    Git & GitHub 入门篇 参考:猴子都能懂的 Git 入门 0. 环境 CentOS 7.4 1. Git 安装 1.1 直接安装 安装 Git: yum install -y git ...

最新文章

  1. Pycharm 和 vscode 多光标、折叠代码和代码格式化快捷键
  2. C#如何进行多线程编程
  3. IIS 7上安装SQL SERVER 2005报表服务可能导致不能正常连接
  4. boost::statechart模块无效图表测试
  5. linux环境 phpstudy集成环境中设置php永久环境变量
  6. springmvc 中@Controller和@RestController的区别
  7. 逻辑与计算机科学之间有什么联系,数学、逻辑与计算机科学的关系
  8. spring异常处理器
  9. 分享:国外著名代码管理网站GitHub访问方式
  10. c语言中rcu缩写,ICU、MICU、EICU、NICU、NCU、CCU、RCU,科室英文缩写大全
  11. 苹果cms主题模板M3.1版本 苹果CMSv10自适应主题
  12. 利用iTunes传输大型文件电脑--ipad
  13. 1 密码学的发展历程
  14. 6种摆脱百度竞价恶意点击的技巧
  15. cad图形不见了怎么办_画好的cad图纸文件不见了怎么找回?
  16. 使用 163 邮箱接收 ASP.NET 用户反馈
  17. VS2015:解决VS2015许可证已过期的问题
  18. 京东2020年Q2财报数据亮眼:超2000亿净收入背后供应链物流价值释放
  19. 【BZOJ4372】烁烁的游戏 动态树分治+线段树
  20. git找回删除的stash

热门文章

  1. 人生中的很多个第一次(转战航天理想)
  2. 旧电脑装什么系统最快_旧电脑的福音:Win10精简版,运行比Win7更快,安装包不到3GB...
  3. 技术贴:看看高通骁龙820和652有什么区别
  4. 毕业设计-基于机器视觉的红枣纹理检测- OpenCV
  5. 除了量子计算机还有什么,被西方称为中国新“霸权”的量子计算机,除了波色采样还会什么?...
  6. 项目展示--基于UDP传输协议+GUI的Java聊天小程序(图片加源代码)
  7. linux 新学的各种命令
  8. 5年华为外包,外包究竟怎么样....
  9. 关于nwjs中编译sqlite3的记录
  10. luna服务器维护,Luna云服务器开启服务器