查看历史
我们可以通过git log
来查看之前的提交信息:
$ git log
commit 47ad04b3b4421b47133c3fd88fa43108c1b2c707
Author: oDevilo <15757166470@163.com>
Date: Fri Feb 3 15:18:01 2017 +0800
master
commit c2e62bc5d64ed1d8750e7ed7d75449d12c2e646c
Merge: 35d67ed 6f8f981
Author: oDevilo <15757166470@163.com>
Date: Fri Feb 3 09:59:37 2017 +0800
ok
不过,不但参数,我们只能看到每个 SHA-1 校验和、作者的名字和电子邮件地址、提交时间以及提交信息。
git log
命令的参数很多,之里就只说明部分。
选项 | 说明 |
---|---|
-p | 按补丁格式显示每个更新之间的差异 |
-(n) | 仅显示最近的 n 条提交 |
–oneline | 将信息用一行显示(只显示版本和说明) |
–stat | 显示每次更新的文件修改统计信息 |
–shortstat | 只显示 –stat 中最后的行数修改添加移除统计 |
–graph | 显示 ASCII 图形表示的分支合并历史 |
–pretty | 使用其他格式显示历史提交信息 |
–since, –after | 仅显示指定时间之后的提交 |
–until, –before | 仅显示指定时间之前的提交 |
–author | 仅显示指定作者相关的提交 |
–committer | 仅显示指定提交者相关的提交 |
–grep | 仅显示含指定关键字的提交 |
-S | 仅显示添加或移除了某个关键字的提交 |
–name-only | 仅在提交信息后显示已修改的文件清单 |
–name-status | 显示新增、修改、删除的文件清单 |
–abbrev-commit | 仅显示 SHA-1 的前几个字符 |
–relative-date | 使用较短的相对时间显示 |
$ git log --pretty=format:"%h - %an, %ar : %s"
47ad04b - oDevilo, 24 hours ago : master
c2e62bc - oDevilo, 30 hours ago : ok
6f8f981 - oDevilo, 10 days ago : test
5acd669 - oDevilo, 10 days ago : init
9b95894 - oDevilo, 10 days ago : twoforget
aaaec21 - oDevilo, 3 weeks ago : add
35d67ed - oDevilo, 3 weeks ago : test lo
–pretty=format 可以将信息按照我们的格式来显示,下面列出格式占位符写法及其代表的意义:
选项 | 说明 |
---|---|
%H | 提交对象(commit)的完整哈希字串 |
%h | 提交对象的简短哈希字串 |
%T | 树对象(tree)的完整哈希字串 |
%t | 树对象的简短哈希字串 |
%P | 父对象(parent)的完整哈希字串 |
%p | 父对象的简短哈希字串 |
%an | 作者(author)的名字,指修改者 |
%ae | 作者的电子邮件地址 |
%ad | 作者修订日期(可以用 –date= 选项定制格式) |
%ar | 作者修订日期,按多久以前的方式显示 |
%cn | 提交者(committer)的名字 |
%ce | 提交者的电子邮件地址 |
%cd | 提交日期 |
%cr | 提交日期,按多久以前的方式显示 |
%s | 提交说明 |
打标签
同其他版本控制系统,Git 可以给历史中的某一个提交打上标签。我们一般会用来标记发布结点(v1.0.0)。
Git 使用两种主要类型的标签:轻量标签(lightweight)与附注标签(annotated)。
- 轻量标签很像一个不会改变的分支 - 它只是一个特定提交的引用。
- 附注标签是存储在 Git 数据库中的一个完整对象,可以被校验。其中包含打标签者的名字、电子邮件地址、日期时间以及标签信息;并且可以使用 GNU Privacy Guard (GPG)签名与验证。
一、创建标签
如果要创建一个轻量标签可以通过下面方法:
$ git tag v1.1
如果要创建一个附注标签,可以使用下面方法:
$ git tag -a v1.3 -m 'this is a tag'
-a 表示为附注标签,如果没有 -m 那么会调用文本编辑器(如果标签名已经存在,则会提示标签已存在)。
二、查看标签
$ git tag
v1.1
v1.2
v1.3
可以通过 -l 来特定查找标签,如下面只查 v1.2 相关的:
$ git tag -l v1.2*
v1.2
git show 命令可以看到标签信息与对应的提交信息(这里可以比较出轻量标签与附注标签的区别,v1.1 为轻量 v1.3 为附注,附注比轻量多了标签信息):
$ git show v1.1
commit 8bef5ee4fb4b111a8a0160426a4be73491d2b4b5
Author: zhangweize <zhangweize_qtl@sina.cn>
Date: Mon Aug 29 14:38:16 2016 +0800
test
diff --git a/1.txt b/1.txt
new file mode 100644
index 0000000..e69de29
$ git show v1.3
tag v1.3
Tagger: oDevilo <15757166470@163.com>
Date: Sat Feb 4 15:55:41 2017 +0800
this is a tag
commit 8bef5ee4fb4b111a8a0160426a4be73491d2b4b5
Author: zhangweize <zhangweize_qtl@sina.cn>
Date: Mon Aug 29 14:38:16 2016 +0800
test
diff --git a/1.txt b/1.txt
new file mode 100644
index 0000000..e69de29