Git学习笔记(8)——标签管理
本文主要记录的Git标签的作用、标签的多种创建方式,以及标签的删除,与推送,和使用GitHub的Fork参与别人的项目。
标签的作用
发布版本时,通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本。无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像,但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。
创建标签
ubuntu@myUbuntu:~/joe/learngit$ git branch
* dev
master
ubuntu@myUbuntu:~/joe/learngit$
git checkout master
//切换到主分支
切换到分支 'master'
您的分支与上游分支 'origin/master' 一致。
ubuntu@myUbuntu:~/joe/learngit$
git tag vs1.
//在此时创建一个标签,并查看
ubuntu@myUbuntu:~/joe/learngit$ git tag
vs1.
//给以前的commit提交创建标签
ubuntu@myUbuntu:~/joe/learngit$
git log --pretty=oneline --abbrev-commit
//查看历史提交ID
Merge pull request # from joesGit15/dev
9ba78c3 Merge branch 'dev' of github.com:joesGit15/learngit into dev
ba535f3 ubuntu dev
a90acc8 ok
a920dd1 win dev test
52bc95e test01
addb113 merge
95c3257 ubuntu dev
......
......
ubuntu@myUbuntu:~/joe/learngit$
git tag v0. 52bc95e
//给test01设置标签
ubuntu@myUbuntu:~/joe/learngit$ git tag
v0.
vs1.0//便签的顺序不是按照时间顺序排序的,而是按照字母排序的。
ubuntu@myUbuntu:~/joe/learngit$
git show v0.
//显示某个标签而定详细内容
commit 52bc95e5ed322f015e8904b1b26222afde0b670b
Author: joe <little_star13@.com>
Date: Tue May :: + test01 diff --git a/abc.c b/abc.c
index 08db0a8..190e9d0
--- a/abc.c
+++ b/abc.c
@@ -, +, @@
I am dev
-bug is o
I am ubuntUk
bug is ok
I am dev window
//带有姓名和备注内容的标签
ubuntu@myUbuntu:~/joe/learngit$
git tag -a vs0. -m "version 0.6"
a920dd1
ubuntu@myUbuntu:~/joe/learngit$
git show vs0.
tag vs0.6
Tagger: joe <little_star13@.com>
Date: Tue May :: + version 0.6 commit a920dd13e56cb76c49d48b9bfde4d7b963456eeb
Author: joe-PC <little_star14@sina.cn>
Date: Tue May :: + win dev test diff --git a/abc.c b/abc.c
index 099b74b..637aca6
--- a/abc.c
+++ b/abc.c
@@ -, +, @@
I am dev
-bug is ok
I am dev window
//为便签设置签名(必须安装gpg)
ubuntu@myUbuntu:~/joe/learngit$
git tag -s vs1. -m "signed version 1.1"
ba535f3
gpg: 已创建目录‘/home/ubuntu/.gnupg’
gpg: 新的配置文件‘/home/ubuntu/.gnupg/gpg.conf’已建立
gpg: 警告:在‘/home/ubuntu/.gnupg/gpg.conf’里的选项于此次运行期间未被使用
gpg: 钥匙环‘/home/ubuntu/.gnupg/secring.gpg’已建立
gpg: 钥匙环‘/home/ubuntu/.gnupg/pubring.gpg’已建立
gpg: “joe <little_star13@.com>”已跳过:私钥不可用
gpg: signing failed: 私钥不可用
error: gpg 无法为数据签名
error: 无法签署 tag
ubuntu@myUbuntu:~/joe/learngit$ pgp
程序“pgp”尚未安装。 您可以使用以下命令安装:
sudo apt-get install pgpgpg
标签的操作
ubuntu@myUbuntu:~/joe/learngit$
git tag
//显示所有标签
v0.
vs0.
vs1.
ubuntu@myUbuntu:~/joe/learngit$
git tag -d v0.
//本地删除单个标签
已删除 tag 'v0.5'(曾为 52bc95e)
ubuntu@myUbuntu:~/joe/learngit$
git push origin vs0.
//将单个标签推送到远程库
对象计数中: , 完成.
写入对象中: % (/), bytes | bytes/s, 完成.
Total (delta ), reused (delta )
To git@github.com:joesGit15/learngit
* [new tag] vs0. -> vs0.
ubuntu@myUbuntu:~/joe/learngit$
git push origin --tags
//推送所有标签
Total (delta ), reused (delta )
To git@github.com:joesGit15/learngit
* [new tag] vs1. -> vs1.
ubuntu@myUbuntu:~/joe/learngit$ git tag
vs0.
vs1.
//以下2步合起来是删除远程库的标签
ubuntu@myUbuntu:~/joe/learngit$
git tag -d vs0.
//前删除本地的标签
已删除 tag 'vs0.6'(曾为 91832c8)
ubuntu@myUbuntu:~/joe/learngit$
git push origin :refs/tags/vs0.
//推动到远程。
To git@github.com:joesGit15/learngit
- [deleted] vs0.
GitHub的使用
GitHub不仅是免费的远程仓库,个人的开源项目,可以放到GitHub上,而且GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。
在GitHub上,利用Git极其强大的克隆和分支功能,人们可以自由参与各种开源项目。比如人气极高的bootstrap项目,这是一个非常强大的CSS框架,在它的项目主页,点“Fork”就在自己的账号下克隆了一个bootstrap仓库,然后,从自己的账号下clone。一定要从自己的账号下clone仓库,这样你才能推送修改。如果从bootstrap的作者的仓库地址git@github.com:twbs/bootstrap.git克隆,因为没有权限,你将不能推送修改。如果你希望bootstrap的官方库能接受你的修改,你就可以在GitHub上发起一个pull request。
Git学习笔记(8)——标签管理的更多相关文章
- git学习笔记12-标签管理-版本
发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来.所以,标签也是版本库的一个快照 ...
- Git学习总结(标签管理)
在Git中打标签非常简单,首先,切换到需要打标签的分支上: 然后,敲命令git tag <name>就可以打一个新标签: $ git tag v1. 可以用命令git tag查看所有标签: ...
- git 学习笔记 -- 创建标签
在Git中打标签非常简单,首先,切换到需要打标签的分支上: $ git branch * dev master $ git checkout master Switched to branch 'ma ...
- git学习笔记08-分支管理策略-实际上我们应该怎么应用分支
Git用Fast forward模式(快进模式),但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支 ...
- git 学习笔记---操作标签
如果标签打错了,也可以删除: $ git tag -d v0.1 Deleted tag 'v0.1' (was f15b0dd) 因为创建的标签都只存储在本地,不会自动推送到远程.所以,打错的标签可 ...
- Git学习笔记五--分支管理
为什么要引入分支? 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了.如果等代码全部 ...
- GIT学习笔记(3):分支管理
GIT学习笔记(3):分支管理 何谓分支 GIT是如何存储数据的 GIT不是存储文件差异或者变化量,而是一系列文件的快照.在Git提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容 ...
- 【转帖】Git学习笔记 记录一下
本文内容参考了廖雪峰老师的博文,并做了适当整理,方便大家查阅. 原帖地址 https://wangfanggang.com/Git/git/ 常用命令 仓库初始化 - git init 1 git i ...
- Pro Git 学习笔记
Pro Git 学习笔记 文档地址:Pro Git原文地址:PRO GIT 学习笔记 git常见命令 1.Git起步 初次运行Git前的配置 用户信息 git config --global user ...
- Git学习笔记 (二)
Git学习笔记(二) 突然发现,学习新知识新技能,都得经常温故使用,这样才能日益精进.最近学习的Git是因为加入了课题组,在学习做一些后台,由于后台开发会牵扯到多人开发,所以学会Git这一代码管理工具 ...
随机推荐
- zend studio常用快捷键
1.提示符助手快捷键 alt+/ 你可以自定义 window->keys->Content assist->Binding 2.复制当前行 alt+ctrl+下 3.删除 ctrl+ ...
- Ajax Step By Step3
第三[.$.getScript()和$.getJSON()] jQuery 提供了一组用于特定异步加载的方法:$.getScript(),用于加载特定的 JS 文件: $.getJSON(),用于专门 ...
- .net 批量打印可实现方案
最近几年一直在教育行业工作,主要负责竞赛类系统的开发工作,包括网上报名,安排考场,在线考试,学业报告书等. 打印功能在这个信息化时代非常普遍,浏览器都自带打印功能,通常的做法是调用 window.pr ...
- Fiddler 工作原理
Fiddler工作原理: 就在在客户端与服务器端创建一个代理服务器: 在开启Fiddler后,Fiddler会自动窜改浏览器的代理,例如我们打开Fiddler,打开IE浏览器--设置--Interne ...
- 使用gulp添加版本号
由于js和css的缓存问题,所以,希望在html上给js和css添加上版本号. 常见的用法是使用gulp-rev和gulp-rev-collector进行操作.使用这两个插件,得到的效果如下图所示: ...
- System.Web.Mvc.UrlHelper的学习与使用
我们学习一下UrlHelper帮助类,看类名也都知道这个类是用来帮我们生成URL在ASP.NET MVC应用程序中.让我们来看看该类给我们带来了哪些方便的方法和属性,UrlHelper提供了四个非常常 ...
- 算法入门笔记------------Day2
1.开灯问题 有n盏灯,编号为1-n,第一个人把所有灯打开,第二个按下所有编号为2的倍数的开关(这些灯都被关掉),第三个人按下所有编号为3的倍数的开关,依次类推,一共有k个人,问最后有哪些灯开着?输入 ...
- linux下配置ssledge代理服务器
ssl edge 是一个非常好用的VPN/proxy, 比云梯 稳定快速的多. 在LINUX下开发 Titanium 需要用到各种FQ,所以它是必备工具. 1. 根据自己付费后的用户名和密码,下载 ...
- Object-C中动态类型对象相关操作汇总
Object-C(以后简称OC)中有id类型,相对于明确定义类型的静态类型,称为动态类型. 使用动态类型,配合多态(不同类型拥有同名方法),动态绑定(运行时决定实际调用的方法)可以将很多判断延迟到运行 ...
- 河南省第五届ACM程序设计大赛
D: 遥 控 器 #include<cstdio> #include<cstring> #include<iostream> #include<algor ...