美文网首页
Git 基础操作指北(2 查看历史提交)

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

作者: 小杨不是小羊 | 来源:发表于2018-11-12 15:40 被阅读0次

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

查看历史提交

在你进行了若干次提交后,又或者克隆了某个项目,想回顾一下提交历史,可以使用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 日后并且作者是杨伟业的提交信息

其他章节

相关文章

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

    注意 如果直接复制命令到命令行可能出现未知问题建议手敲。 查看历史提交 在你进行了若干次提交后,又或者克隆了某个项...

  • 2016-07-13 Git 基础(三)

    Git 基础 - 查看提交历史 查看提交历史 git log 如果不带任何参数的话,会按照提交时间列出所有的更新。...

  • 找回git rebase --skip消失的代码

    1.git reflog操作,查看提交的历史记录,找到自己的提交 2.强制回退到上一次提交:git reset -...

  • git回滚命令

    01:git log 查看提交历史。 02:git reflog 查看所有分支的所有操作记录。 03:git re...

  • Git 基础 - 查看提交历史

    查看提交历史 git log 命令用于查看提交历史 默认不使用参数的话,git log 会按提交时间列出所有的更新...

  • Git基础 - 查看提交历史

    查看提交历史 在提交了若干更新,又或者克隆了某个项目之后,git log命令可以回顾提交历史。 默认不用任何参数的...

  • Git基础 - 查看提交历史

    查看提交历史在提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,可以使用 git log 命令查看。默认...

  • 学习Git(二)

    版本回退经过提交文件,修改文件之后,可以使用git log来查看历史操作记录 git log可以查看由近到远的提交...

  • git-查看历史版本及回滚版本

    查看历史提交版本: 1.git log 查看历史所有版本信息 2.git log -x 查看最新的x个版本信息 3...

  • Git学习笔记

    Git结构 Git命令行操作本地化操作本地库初始化设置签名基本操作状态查看添加提交查看历史纪录前进后退reset命...

网友评论

      本文标题:Git 基础操作指北(2 查看历史提交)

      本文链接:https://www.haomeiwen.com/subject/ssdcfqtx.html