Git 系列之tag的用法---为你的代码标记版本号

版权声明:本文为博主原创文章,未经博主允许不得转载。

目录(?)[-]

  1. 本地仓库操作
  2. 远程仓库操作
  3. 其他 tag 操作

在做app开发的时候经常有版本的概念,比如v1.0、v1.1之类的,不同的版本肯定对应不同的代码,所以我一般要给我们的代码加上标签,这样假设v1.1版本出了一个新bug,但是又不晓得v1.0是不是有这个bug,有了标签就可以顺利切换到v1.0的代码,重新打个包测试了。

本地仓库操作:

1:打 tag 标签

Git tag -a v1.0 -m “commit version 1.0

加上 -f 覆盖原有的tag 
git tag -f v1.0

2:push 到远程仓库

  • push所有tag到远程仓库:git push origin –tags (注意tags前是两个短横杠)
  • push单个tag到远程仓库:git push origin [tagname]

3:删除 tag 便签

git tag -d v1.0

4:查看 tag 标签

git tag

5:切换标签

git checkout v1.0


远程仓库操作:

1:从远程仓库上删除 tag 
git push origin :v1.0

git push origin :refs/tags/[tagname]

git push origin –delete [tagname]

三种方法尽量都有尝试一下。



注意事项: 
尽量不要tag名字和分支名字一样,比较麻烦。 
如果tag名字和分支名字一样的时候,push需要指定refs的详细路径,因为分支和tag在git内部是这样表示的(只是引用),tag只存储所指向的那一次提交:

refs/tags/{tagnane} refs/heads/branches/{branchnane}

所以要这样push相同名字的tag和分支: 
git push origin refs/tags/product 
git push origin refs/heads/branches/product

把所有的tag都push到服务器上: 
git push origin –tags


其他 tag 操作:

轻量级标签 
轻量级标签实际上就是存在一个文件中的提交校验和–没有附加任何其他信息。创建轻量级标签的方法就是把上面’-a’,’-s’,’-m’这些选项都去掉。

git tag v1.0

如果现在对这个标签使用’git show’命令,不会看到像上面那种标签显示的那么多内容,仅仅显示这次提交的有关信息。

时间: 2024-09-30 06:21:45

Git 系列之tag的用法---为你的代码标记版本号的相关文章

iOS开发系列之二 - UILabel 用法小结

// 初始化标签 UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 300, 150)]; // 设置标签文字 label.text = @"This is a test text.This is a test text.This is a test text."; // 设置标签文字字体 // 使用系统字体 label.font = [UIFont systemFontOfSize:20]; //

模板参数tag的用法

//通过结构体/类的类型来作为模板参数的tag, //用来区分tag之间的区别. //made by davidsu33 //例如对于某个全局的静态变量,你如果希望有 //很多份,但是其实现又是一样的,你可以考虑 //以模板的形式,通过类tag来区分 //而且还可以根据实际需要来特化模板 #include "stdafx.h" #include <iostream> #include <cassert> using namespace std; template

UIView-(frame,center,bounds,tag,transform)用法

frame: 表示控件的位置和尺寸(以父控件的左上角为坐标原点(0,0)) 可以调整控件的大小和位置 不能直接给frame的属性进行赋值_btn.frame.origin.y -=50是错误的,正确的做法应该如下图. 1 CGRect frame = _btn.frame; 2 frame.origin.y -= 50; 3 _btn.frame = frame; center: 表示控件的中点(以父控件的左上角为坐标原点) 可以改变控件的位置 不能直接给frame的属性进行赋值_btn.cen

Git 系列(三):建立你的第一个 Git 仓库

现在是时候学习怎样创建你自己的 Git 仓库了,还有怎样增加文件和完成提交. 在本系列前面的文章中,你已经学习了怎样作为一个最终用户与 Git 进行交互:你就像一个漫无目的的流浪者一样偶然发现了一个开源项目网站,克隆了仓库,然后你就可以继续钻研它了.你知道了和 Git 进行交互并不像你想的那样困难,或许你只是需要被说服现在去使用 Git 完成你的工作罢了. 虽然 Git 确实是被许多重要软件选作版本控制工具,但是并不是仅能用于这些重要软件:它也能管理你购物清单(如果它们对你来说很重要的话,当然可

django中tag的用法

新建一个tags.py from django import templateregister = template.Library() def short_msg(value): if len(value) > 50: return value[:50]+" ......" else: return value register.filter('short_msg', short_msg) 在html页面中 {% extends "base.html" %}

Atlassian Git系列教程

国庆期间把Atlassian的Git系列教程看完了.边看边翻译了相关文章. 原教程: https://www.atlassian.com/git/tutorials/ 我翻译的: git init git clone git config git add git commit git status git log git checkout git revert git reset git clean git commit --amend git rebase git rebase -i git

delphi Sender和Tag的用法1

Sender和Tag的用法  在它们共同的OnClick事件下返回单击的那个按钮的标题 unit Unit1; interface uses  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type  TForm1 = class(TForm) 

delphi Sender和Tag的用法

var  Form1: TForm1;  SelectedColor:TColor;//clBlack; //Defaultimplementation{$R *.dfm} procedure TForm1.FormCreate(Sender: TObject);begin   SelectedColor:=clBlack; //Defaultend;//将这些控件全部选中然后使用双击 OnClick事件//OnClick获得返回值procedure TForm1.img11Click(Send

Git系列四之分支管理

Git系列四之分支管理 2017-03-02 分类:Git 阅读(1175) 评论(1) 来自为知笔记(Wiz) 原文地址:https://www.cnblogs.com/wangkaiok/p/cdcc9cf3f6e3d1a864a46177209a7c8f.html