git reflog 和 git log 的区别
git reflog
可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作),git log
则不能察看已经删除了的commit记录
具体一个例子,假设有三个commit:
git st:commit3: add test3.c
commit2: add test2.c
commit1: add test1.c
如果执行 git reset --hard HEAD~1 则删除了 commit3,如果发现删除错误了,需要恢复 commit3 就要使用
git reflog HEAD@{0}: HEAD~1: updating HEAD
63ee781 HEAD@{1}: commit: test3:q
63ee781 即是被删除了的 commit3,运行 git log 则没有这一行记录
可以使用 git reset --hard 63ee781 将红色记录删除,则恢复了cmmit3,运行git log后可以看到:
commit3: add test3.c
commit2: add test2.c
commit1: add test1.c
这里也可以使用另外一种方法来实现:git cherry-pick 63ee781
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(后跟指定格式)
限制输出长度
除了用 -n 来限制输出 log 的条数,还可以用 --since 和 --until 按照时间作限制。
用 --author 选项显示指定作者的提交,用 --grep 选项搜索提交说明中的关键字。
要得到同时满足这两个选项搜索条件的提交,就必须用 --all-match 选项。
-S 列出那些添加或移除了某些字符串的提交。
可以在 git log 选项的最后指定它们的路径。因为是放在最后位置上的选项,所以用两个短划线 – 隔开之前的选项和后面限定的路径名。
- 列出所有最近两周内的提交
$ git log --since=2.weeks
- 想找出添加或移除了某一个特定函数的引用的提交
$ git log -Sfunction_name
- 2018 年 4 月期间,Junio Hamano 提交的但未合并的测试文件
$ git log --pretty="%h - %s" --author=gitster --since="2018-04-01" --before="2018-05-01" --no-merges -- t/
git reflog 和 git log 的区别相关推荐
- 【Git】Git 基础命令 ( 查看提交记录 git log | 版本回滚 git reset | 撤销回滚 git reflog )
文章目录 一.查看提交记录 git log 1.查看详细提交记录 2.查看简略提交记录 二.版本回滚 git reset 1.Git 中的版本表示 HEAD~1 2.版本库代码回滚 三.撤销回滚 1. ...
- git reflog 时光穿梭机
目录 一.问题描述 二.解决 一.问题描述 小白花费一周时间做了git log如下所示6个功能. commit的信息就是做了6个功能,每个功能对应一个commit的提交,分别是feature-1 到 ...
- git 沙河游戏节点图, 自由沙盒模拟git, 各类交互git命令
git学习练习总资源链接: https://try.github.io/ (练习已通,有document) 本沙盒游戏教学:https://learngitbranching.js.org/?demo ...
- Git——版本回退【git reset / git log / git reflog】
前言:下面是在版本回退中常用的命令. 1. git log -- 查看版本日志 $ git log HEAD为当前指向的版本指针.使用git log 查看版本日志后,显示了它们的版本号是一系列SH ...
- 【Git学习】使用git reflog 命令来查看历史提交记录并使用提交记录恢复已经被删除掉的分支
一.问题描述 昨天下午有个同事急急忙忙跑我座位上,要我帮忙,说他刚刚因为手误,将他本地的某个project的某个branch分支删除了,并且也将Gitlab上面的远程分支也删除了.他本来是想发起mer ...
- git fetch和git pull的区别_Git实战(实验楼)学习笔记 实验2 基本用法(下)
一.实验介绍 本节实验为 Git 入门第二个实验,继续练习最常用的 Git 命令. 知识点 对比差异 分布式的工作流程 Git 标签 实验环境 实验环境为 Ubuntu Linux 命令行环境,需要了 ...
- 玩转GIT系列之【git pull和git fetch的区别】
大家都知道,git中从远程的分支获取最新的版本到本地有2个命令,git pull和git fetch.但是,这两个命令究竟有什么区别?使用时候该怎么选择呢?很多人不是很清楚,我自己也不是很清楚.今天就 ...
- git reflog and checkout
用错checkout 了比如想checkout出下面的一个版本,结果用错了 git checkout 8bfd9b1d292 这样会导致HEAD deatched ,在这个地方修改后commit ...
- git如何查看缓存区文件内容_详解Git工作区、暂存区、历史记录区以及git reset、git revert、git checkout等撤销命令的区别...
一.可以将git简单的分为三个区域 1.工作区(working directory) 2.暂缓区(stage index) 3.历史记录区(history) 如图: 其中git ...
最新文章
- Nature综述——真菌的多样性:真菌的高通量测序及鉴定
- Spring Cloud Alibaba:一步一步教你搭建Nacos集群
- 对话阿里云叔同:释放云价值,让容器成为“普适”技术
- Velocity教程 (zhuan)
- linux下rfkill命令管理蓝牙和wifi
- 大数据时代,做数据分析报告的基本流程
- php清除页面别人挂的马
- Android下磁盘分区表损坏,修复分区表,教您硬盘分区表损坏怎么修复
- QQ邮箱添加网易邮箱
- Nginx反向代理域名映射
- Android中ListView错位布局实现(无聊向)
- 领导提拔你的原因,只有这点最真实,其他都是瞎扯!
- PMP 项目管理(12)项目采购管理 思维导图 解读
- MongoDB被黑记录
- WPF 使用 Direct2D1 画图入门
- 2019年最新网盘搜索引擎汇总
- NR-PRACH:prach格式以及时频域情况
- js 重置表单 reset form
- JKD 下载、安装、配置
- WideDeep论文翻译