前言

正文开始之前,我想我们需要弄明白几个问题:

1.tag 是什么?

2.使用tag 的好处?

3.tag 和 branch 的区别以及使用场景?

tag 是什么?

tag , 翻译过来是标签的意思,顾名思义,标签是为了标记某种事物。

tag 是 Git 版本库的一个快照,指向某个 commit 的指针。

使用tag 的好处?

tag 的存在,是因为我们需要这种标记的功能。目前的项目开发中,当发布版本时 tag 就派上用场了。例如 v1.0.1,v1.0.2…

另外,git 提供了 tag 的增删改查一系列操作,在 tag 的使用上,可谓非常之方便。

tag 和 branch 的区别以及使用场景?

想到这里,你可能觉得 tag 和 branch 有点相似。没错,的确是有点像,但是它们的职责分工和本质都是不同的。

tag 对应某次 commit, 是一个点,是不可移动的。

branch 对应一系列 commit,是很多点连成的一根线,有一个HEAD 指针,是可以依靠 HEAD 指针移动的。

所以,两者的区别决定了使用方式,改动代码用 branch ,不改动只查看用 tag。

tag 和 branch 的相互配合使用,有时候起到非常方便的效果,例如 已经发布了 v1.0 v2.0 v3.0 三个版本,这个时候,我突然想不改现有代码的前提下,在 v2.0 的基础上加个新功能,作为 v4.0 发布。就可以 检出 v2.0 的代码作为一个 branch ,然后作为开发分支。

tag 的简单使用

以下命令都是我使用 tag 过程中一般会使用到的,可以说都是常用命令。

1.创建标签

需要说明的是,创建 tag 是基于本地分支的 commit,而且与分支的推送是两回事,就是说分支已经推送到远程了,但是你的 tag 并没有,如果把 tag 推送到远程分支上,需要另外执行 tag 的推送命令。

git tag //创建本地tag

git push origin //推送到远程仓库

1

2

若存在很多未推送的本地标签,你想一次全部推送的话,可以使用一下的命令:

git push origin --tags

1

2

以上是基于本地当前分支的最后的一个 commit 创建的 tag ,但是如果不想以最后一个,只想以某一个特定的提交为 tag ,也是可以的,只要你知道 commit 的 id。

git log --pretty=oneline //查看当前分支的提交历史,里面包含 commit id

git tag -a

1

2

2.查看标签

查看本地某个 tag 的详细信息:

git show

1

查看本地所有 tag :

//下面两个命令都可以

git tag

git tag -l

1

2

3

查看远程所有 tag:

git ls-remote --tags origin

1

2

3.删除标签

本地 tag 的删除:

git tag -d

1

远程 tag 的删除:

git push origin :

1

4.重命名标签

这个本质上是删除掉旧名字 tag ,然后再新建新名字 tag ,然后实现重命名的作用。

如果 tag 只存在本地,那么只需要删除本地的旧名字 tag ,然后新建新名字 tag:

git tag -d

git tag

git push origin //推送到远程仓库

1

2

3

若已经推送到远程了,那么不仅要删除本地的,还要删除远程的,再重新创建和推送:

git tag -d

git push origin :

git tag

git push origin //推送到远程仓库

1

2

3

4

5

5.检出标签

命令如下:

git checkout -b

1

因为 tag 本身指向的就是一个 commit,所以和根据 commit id 检出分支是一个道理。

但是需要特别说明的是,如果我们想要修改 tag 检出代码分支,那么虽然分支中的代码改变了,但是 tag 标记的 commit 还是同一个,标记的代码是不会变的,这个要格外的注意。

---------------------

作者:DRPrincess

来源:CSDN

原文:https://blog.csdn.net/qq_32452623/article/details/73949509?utm_source=copy

版权声明:本文为博主原创文章,转载请附上博文链接!

git对指定commitid 打tag_Git-命令行-使用 Tag 标记你的代码相关推荐

  1. git对指定commitid 打tag_Git 标签使用详解

    Git跟其他版本控制系统一样,可以打标签(tag)标记一个版本号. 发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打 ...

  2. git对指定commitid 打tag_git 回退版本到之前提交的tag或commit内容代码

    git必须知道当前版本是哪个版本, 在git中,用HEAD表示当前版本, 上一个版本就是HEAD^, 上上个版本就是HEAD^^,当然往上100个版本写100个,^比较容易数不过来,所以写成HEAD~ ...

  3. Git-命令行-使用 Tag 标记你的代码

    前言 正文开始之前,我想我们需要弄明白几个问题: tag 是什么? 使用tag 的好处? tag 和 branch 的区别以及使用场景? tag 是什么? tag , 翻译过来是标签的意思,顾名思义, ...

  4. git 修改commit_结合IDEA与命令行,解决常用git操作与特殊情况的最佳实践

    本文适合总觉得git操作不够顺滑,被各种分支问题搞得焦头烂额的Java业务开发同学. 如果是git的初学者,建议搜索下git其他入门教程,这方面资料很多,非常推荐git init一个新项目,然后本地操 ...

  5. linux 复制指定类型,用Linux命令行实现删除和复制指定类型的文件

    (一)Linux 删除当前目录及子目录中所有某种类型的文件 方法1 : 此方法不能处理目录中带空格的那些. rm -rf `find . -name "*.example"` Li ...

  6. IntelliJ IDEA下Git的配置与使用(命令行下)

    1. 安装Git并配置好Git 安装与配置参见Git与码云(Git@OSC)入门-如何在实验室和宿舍同步你的代码(1)中的2.在本机安装Git与3.1 配置git. 2. 创建远程仓库 在gitee. ...

  7. Git使用命令行拉取项目、提交代码

    一.拉取项目 1.打开GitHub,选择项目,复制项目地址 2.在电脑上新建一个项目文件夹,在文件夹里点击右键-->Git Bash Here,打开Git命令行 3.输入git clone + ...

  8. git 版本控制工具(五)-命令行汇总及其他操作

    一.命令行汇总 git config //配置本地仓库 常用git config --global user.name.git config --global user.email git confi ...

  9. 如何方便快速在指定文件夹打开命令行

    很多时候我们需要打开命令行然后进入到相应目录进行一些操作. 常规的做法是: Win+R打开运行窗口 输入"cmd"回车打开命令行窗口 假如我们要进入的是D盘foo文件夹下的一个ba ...

最新文章

  1. ---pacman dpkg yum 之比较
  2. PyCharm中控制台输出日志分层级分颜色显示
  3. 嵌入式linux ext4映像制作工具说明 real210_v62
  4. 转:HTTP协议简介与在python中的使用详解
  5. 全国计算机等级考试题库二级C操作题100套(第40套)
  6. oracle for函数,oracle分区表述的FOR语句(一)
  7. gulp教程之gulp-htmlmin压缩html
  8. python动态图片转字符画_【小工具】使用python将图片转彩色字符画
  9. NHibernate之映射文件配置说明(转载1)
  10. 进程间通信无名管道 --- pipe 典型的生产者消费者模式
  11. thinkphp5杂谈--模板
  12. c语言小组作业报告,C语言实训总结报告范文
  13. 5G无线关键技术 — 新型传输波形技术和先进编码与调制技术
  14. Java实现蓝桥杯二项式的系数规律
  15. 【活动时间调整】博客搬家,有礼相送
  16. 2018年「编码美丽」公众号精华帖总结,建议收藏(文末赠书)!
  17. CSS3 画的哆啦A梦
  18. Adobe XD常见问题和解决方案
  19. lpop 原子_深圳大学张文静教授团队ACS Nano:单原子铂修饰的二硫化钒催化剂提高电催化析氢性能...
  20. 在VMware10下安装VxWorks6.6虚拟机教程(上篇——准备环节)

热门文章

  1. 汇总丨MySQL GTID技术点,看这一篇就够了!
  2. 未完待续:关于DB Link和SCN,你还需要知道的是...
  3. Python入门:ChainMap 有效管理多个上下文
  4. 云服务的可服务性经典6问
  5. 【华为云技术分享】一文带你了解Web前端发展历程
  6. 利用modelarts和物体检测方式识别验证码
  7. PHP+MySql+PDO小案例—文章管理系统
  8. 使用Django的models创建mysql数据库
  9. WPS关于尾注的细节
  10. window10安装oracle VirtualBox 虚拟机+ubuntu16.04安装Ros