git reflog 和 git log 的区别

阅读 673 标签:git  
  • 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
    
  • 2021 年 8 月期间,Junio Hamano 提交的但未合并的测试文件
  • $ git log --pretty="%h - %s" --author=gitster --since="2021-08-01" --before="2021-09-01" --no-merges -- t/
    
文章来源:网络 版权归原作者所有,如涉及知识产权问题,请权利人联系我们,我们将立即处理.
标签: git
西行寺え幽幽子
文章 84 获得 0个赞 共 0个粉丝

推荐阅读 更多精彩内容

  • 学习编程语言,早已不是学一点语法规则那么简单。现在更习惯称作选择 Ecosystem(生态圈),而这其中标准库的作用和分量尤为明显。在Go语言的安装文件里包含了一些可以直接使用的包,即标准库。Go语言
    顾你木偶 顾你木偶 阅读 788 标签: go  
  • 根据 Go 开发团队和基本的算法测试,Go语言与C语言的性能差距大概在 10%~20% 之间。虽然没有官方的性能标准,但是与其它各个语言相比已经拥有非常出色的表现。时下流行的语言大都是运行在虚拟机上,
    顾你木偶 顾你木偶 阅读 698
  • 在早期 CPU 都是以单核的形式顺序执行机器指令。Go语言的祖先C语言正是这种顺序编程语言的代表。顺序编程语言中的顺序是指:所有的指令都是以串行的方式执行,在相同的时刻有且仅有一个 CPU 在顺序执行
    顾你木偶 顾你木偶 阅读 823 标签: go  
  • Go语言也称为 Golang,是由 Google 公司开发的一种静态强类型、编译型、并发型、并具有垃圾回收功能的编程语言。接下来从几个方面来具体介绍一下Go语言的特性。语法简单抛开语法样式不谈,单就类
    顾你木偶 顾你木偶 阅读 892 标签: go  
  • Go语言(或 Golang)起源于 2007 年,并在 2009 年正式对外发布。Go 是非常年轻的一门语言,它的主要目标是“兼具 Python等动态语言的开发速度和 C/C++等编译型语言的性能与安
    顾你木偶 顾你木偶 阅读 955 标签: go  
  • 1.介绍项目:完整的2.zookeeper:zkServer,使用过这在内部删除东西?不明白他想问啥?3.zookeeper的反压:4.DAG:DAGscheduler,taskscheduler,t
    上杉夏香 上杉夏香 阅读 566 标签: 大数据  hadoop  storm  
  • 1.hbase有什么特点,他的优缺点:海量存储,列式存储,高并发,稀疏(列的灵活性,列族中可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的),高可用(WAL解决高可用,瞬间写入量)2.单
    一生所爱の赫萝 一生所爱の赫萝 阅读 604 标签: 大数据  hadoop  
  • hadoop框架1.hdfs的读写基本不问,但是还是要知道2.mapjoin的原理3.hadoop的shuffle原理也没问,也要知道4.你在工作中的hadoop的小文件处理,结合项目进行说明5.ha
    九公里浅绿 九公里浅绿 阅读 680 标签: 大数据  hadoop  
  • 一面1.hive数据倾斜有哪几种?举例说明2.数据采集方式是什么?3.数仓是如何分层的?4.数据应用层对外使用的话,是通过什么方式去使用的?5.数据应用程序指标的设计过程是怎样的?6.能举例说下进行过
    田井中律 田井中律 阅读 564
  • 1.spark sql和hive sql的区别2.从原始数据层获取数据,数据丢失的情况有没有遇到过?3.kafka消息丢失,如何发现这些问题以及如何处理?4.项目中用到的kafka的topic,以及一
    田井中律 田井中律 阅读 532