Git 基础操作指北(2 查看历史提交)

注意 如果直接复制命令到命令行可能出现未知问题建议手敲。

查看历史提交

在你进行了若干次提交后,又或者克隆了某个项目,想回顾一下提交历史,可以使用git log 命令进行查看。

git log 

commit 1f619ae53d9d66b29849973eea7e0b28af9b1416 (HEAD -> feature/admin_data, origin/feature/admin_data)
Author: 杨伟业 <yangweiye@iwork365.com>
Date:   Thu Nov 8 18:42:26 2018 +0800

    发送上新通知相关

commit ce743449c79841e18637442eface54e45d802a56
Author: 杨伟业 <yangweiye@iwork365.com>
Date:   Wed Nov 7 14:41:55 2018 +0800

    后台发送上新消息

commit 1b980726c647e2b2e0e483e054fa454a43f11f15
Author: 杨伟业 <yangweiye@iwork365.com>
Date:   Mon Nov 5 17:39:16 2018 +0800

    修改时间选择器

commit 383a74f7caff434f8628e244c3372093af99efb2
Author: 杨伟业 <yangweiye@iwork365.com>
Date:   Mon Nov 5 17:36:03 2018 +0800

该命令会以 less 的方式来展示提交记录,最新提交的展示在最上面。

commit    sha-1 校验码
Author    作者姓名 作者邮箱
Date      提交时间
缩进的文本  提交的说明。

git log 常用参数

参数 简介
-p 按照补丁格式显示每个更新之间的差异
--stat 显示每次更新的文件修改统计信息
--shortstat 只显示 –stat 中最后的行数修改添加移除统计
--name-only 仅在提交信息后显示已修改的文件清单
--name-status 在提交信息后显示新增、修改、删除的文件清单
--abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符
--relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)
--graph 显示 ASCII 图形表示的分支合并历史
--pretty 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)
git log -p

显示更新之间的差异。

commit 6387c9228422ea8171845a1e2285daa872aa5543
Author: 杨伟业 <yangweiye@iwork365.com>
Date:   Fri Nov 9 16:00:13 2018 +0800

    修改替换方法

diff --git a/app/Jobs/NewProductAdmin.php b/app/Jobs/NewProductAdmin.php
index 99dc591e..b4b98455 100644
--- a/app/Jobs/NewProductAdmin.php
+++ b/app/Jobs/NewProductAdmin.php
@@ -72,9 +72,6 @@ class NewProductAdmin implements ShouldQueue
 
     public function contentReplace($content, $rule = [])
     {
-        $rule['store_name'] = '店铺名称';
-        $rule['user_name']  = '用户名称';
-
         foreach ($rule as $key => $value) {
             $content = preg_replace('/{{' . $key . '}}/', $value, $content);
         }

- 号表示删除行

+ 号表示新增行

git log --stat

显示每次更新的文件修改统计信息。

commit 724bb519771ac75dbe3da402d485063fb27a23f7 (HEAD -> feature/admin_data, origin/feature/admin_data)
Author: 杨伟业 <yangweiye@iwork365.com>
Date:   Fri Nov 9 17:31:17 2018 +0800

    修改发消息方法

 .../Controllers/Admin/Message/NewProductController.php     | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

这次提交 14行改动 7行新增 7行删除

git log --shortstat

只显示 行数修改统计信息。

commit 724bb519771ac75dbe3da402d485063fb27a23f7 (HEAD -> feature/admin_data, origin/feature/admin_data)
Author: 杨伟业 <yangweiye@iwork365.com>
Date:   Fri Nov 9 17:31:17 2018 +0800

    修改发消息方法

 1 file changed, 7 insertions(+), 7 deletions(-)

相比 stat 没有具体列出修改文件。

git log --name-only

在提交信息后显示 已修改的文件清单。

commit 724bb519771ac75dbe3da402d485063fb27a23f7 (HEAD -> feature/admin_data, origin/feature/admin_data)
Author: 杨伟业 <yangweiye@iwork365.com>
Date:   Fri Nov 9 17:31:17 2018 +0800

    修改发消息方法

app/Http/Controllers/Admin/Message/NewProductController.php

本次提交 NewProductController.php 文件被修改了。

git log --name-status

在提交信息后显示 新增 修改 删除的文件清单。

commit 724bb519771ac75dbe3da402d485063fb27a23f7 (HEAD -> feature/admin_data, origin/feature/admin_data)
Author: 杨伟业 <yangweiye@iwork365.com>
Date:   Fri Nov 9 17:31:17 2018 +0800

    修改发消息方法

M       app/Http/Controllers/Admin/Message/NewProductController.php

本次提交 修改了 NewProductController.php 文件。

M 修改 A 新增 D 删除

git log --abbrev-commit

sha-1 正常40 个字符,加上此参数就只显示前几位字符

commit 724bb519 (HEAD -> feature/admin_data, origin/feature/admin_data)
git log --relative-date

使用较短的相对时间显示 2 weeks ago 两周前

commit 724bb519771ac75dbe3da402d485063fb27a23f7 (HEAD -> feature/admin_data, origin/feature/admin_data)
Author: 杨伟业 <yangweiye@iwork365.com>
Date:   3 days ago

    修改发消息方法

3天前进行提交。

git log --graph

显示 ASCII 图形表示的分支合并历史

*   commit a4785358485368e4c3f49fbb847059ef0241d692 (origin/master, origin/HEAD,master)
|\  Merge: e77e36f3 1f619ae5
| | Author: yangweiye <1415051135@qq.com>
| | Date:   Fri Nov 9 15:24:37 2018 +0800
| | 
| |     Accept Merge Request #449: (feature/admin_data -> master)
| |     Merge Request: 上新消息推送相关
| |     Created By: @yangweiye
| |     Accepted By: @yangweiye
| |     URL: https://coding.net/u/ty-coding/p/activities-activity/git/merge/449
| | 
| * commit 1f619ae53d9d66b29849973eea7e0b28af9b1416
| | Author: 杨伟业 <yangweiye@iwork365.com>
| | Date:   Thu Nov 8 18:42:26 2018 +0800
| | 
| |     发送上新通知相关
| |   
* |   commit e77e36f3254736c16f0cd5eb0cd029cbabe46e51
|\ \  Merge: 4c3559c6 ce743449
| |/  Author: yangweiye <1415051135@qq.com>
| |   Date:   Wed Nov 7 14:46:41 2018 +0800
| |   

比较简陋的显示分支创建、合并操作

log log --pretty

使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。

参数 结果
oneline 每次提交信息一行内显示
short 只显示 commit(sha1)、Author(作者)、title(提交时的描述)
full 显示 commit、Author、Commit(提交者)、title、commit message(完整的提交信息)
fuller 显示 commit、Author、AuthorDate(修改完成时间)、Commit、CommitDate(提交时间)、title、commit message

pretty 参数不止这些,更多还需要自行查手册。

除了以上常用参数还有一个比较关键的参数 format

format 参数

参数 结果
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 -date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明

当然 以上 并不是 format 的所有参数,如果你需要更多,还要你自己参考手册。

作者 和 提交者的区分 : 作者指的是实际作出修改的人,提交者指的是最后将此工作成果提交到仓库的人。

示例

git log --pretty=onelin
#一行内展示提交记录

git log --pretty=format:"%h - %an,%ar : %s"
#每次提交格式化为 简短哈希字符串 - 作者的名字,修改完成时间 : 提交说明
组合使用
git log --relative-date --abbrev-commit --name-status
#显示时间描述 显示简短的哈希字符串 显示新增、修改、删除的文件清单。

git --shortstat --abbrev-commit
#显示修改、添加、删除的行数统计 显示简短的哈希字符串

限制输出长度

限制可用参数

参数 结果
-(n) 仅显示最近的 n 条提交
-since,-after 仅显示指定时间之后的提交
-until,-before 仅显示指定时间之前的提交
-author 仅显示指定作者相关的提交
-committer 仅显示指定提交者相关的提交

这些参数可用配合上门的格式化一起使用。

git log --relative-date --abbrev-commit --name-status --after="2018-11-01"
#显示 2018-11-01 日后的提交信息,并格式

git log --pretty=format:"%h %an %s" --after="2018-11-01" --author=杨伟业
#显示 2018-11-01 日后并且作者是杨伟业的提交信息

其他章节

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351