Git 基础操作指北(2 查看历史提交)
2018-11-12 本文已影响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 日后并且作者是杨伟业的提交信息