Git---git log 与 git reflog 查看历史记录(被删除的历史commit ID)

48 篇文章 2 订阅
38 篇文章 0 订阅

区别:如果在回退以后又想再次回到之前的版本,

git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录

git log则不能查看已经删除了的commit记录.

git  blame - 显示文件的每一行最后修改的版本和作者(详细内容待加入)

推荐采用的命令(结果简洁明了,非常实用)

--abbrev-commit: hash值commitID简短形式出现

--graph:以ASCII 图形表示的分支合并历史

git log --pretty=oneline  --abbrev-commit  -<number>  // 以一行的形式展示历史,number表示要展示的最近的几条

git log --pretty=format:"%h - %an  %cr : %s" --graph  -<number> // 以对应格式展示历史记录,graph是以ASCII 图形表示的分支合并历史

git rev-parse branch_name // 775337e59686c0a9b197f9adfbe7afaa744ca7b3 ; 当前最新的commitID

一、git log 

git log --pretty=format:"%h - %an  %cr : %s" --graph
// 美化日志
git log --graph --oneline --decorate

git log 查看所有(未被回退)的commit id 和提交的信息

如果觉得太繁琐,在命令后加上参数  --pretty=oneline,只会显示版本号和提交时的备注信息

 

 命令总结

1.--oneline标志来简化日志

git log --oneline

2.显示文件增改行数

git log --stat

3.最近N次的提交

git log -3

 4.显示每次提交的内容差异

git log -p

 5. 美化日志命令

git log --graph --oneline --decorate

 6. 按合并查看

// 查看合并操作的操作记录
git log --merges
// 查看非合并操作的操作记录
git log --no-merges

 7.按分支查看

// 查看test分支比master分支多提交了哪些内容
git log master..test

 8.按文件查看

// 查看对应文件修改的内容
git log -- <path>

9. 按时间查看

//某个日期之后
git log --since=<date>
git log --after=<date>

//某个日期之前
git log --until=<date>
git log --before=<date>

git log --since="2022.05.15" --until="2022.05.20"

 10. 按作者看

// 只看某个人的提交
git log --author="username"
// 搜索多个作者的提交信息(\来对|进行转义)
git log --author="username1\|usernmae2"

a.其他参数:

双点(experiment..master

这种语法可以让 Git 选出在一个分支中而不在另一个分支中的提交

//想查看在 master 分支中而不在 experiment 分支中的提交
git log experiment..master

git log origin/master..HEAD 

1. 这个命令会输出在你当前分支中而不在远程 origin 中的提交
2. 如果你留空了其中的一边, Git 会默认为 HEAD(即当前分支指向)

 ​​​​​​多点(^ | --not 就是多分支比较,这样好记

(在任意引用前加上 ^ 字符或者 --not 来指明你不希望提交被包含其中的分支)

git log refA..refB |  git log ^refA refB |  git log refB --not refA
(等价于在refB且不在refA上的提交)查看哪些提交是被包含在 某些分支中的一个,
但是不在你当前的分支上

git log refA refB ^refC  |   git log refA refB --not refC
查看所有 被 refA 或 refB 包含的但是不被 refC 包含的提交

git log master..experiment
可以使用 master..experiment 来让 Git 显示这些提交。
也就是“在 experiment 分支中而不在 master 分支中的提交”

 三点(master...experiment

这个语法可以选择出被两个引用中的一个包含但又不被两者同时包含的提交。

参数 --left-right,它会显示每个提交到底处于哪一侧的分支。 这会让输出数据更加清晰。

二、git reflog

(查看所有分支的所有操作记录(包括已经被删除的))
可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)

例如执行:
git reset --hard HEAD~1,退回到上一个版本;
git reset --hard HEAD@{3} 回退到指定版本
git reset --hard b915f40   回退到指定版本(使用缩写commitID)
用git log则是看不出来被删除的commitid,用git reflog则可以看到被删除的commitid,

 

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绝世唐门三哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值