痞子衡嵌入式:第一本Git命令教程(6)- 日志(log/reflog/gitk)
今天是Git系列课程第六课,上一课我们学会了Git本地提交,今天痞子衡要讲的是如何查看Git本地历史提交。
当我们在仓库里做了很多次提交之后,免不了需要回看提交记录,看看自己之前的改动。有三种Git命令可以帮我们查看记录,痞子衡为大家一一讲解:
1.查看本地历史提交git log
git log是最直接的查看历史提交的命令,git log可直接用也可带参数用,常用的有下面4种:
1.1标准查看git log
// 显示所有历史提交标准信息,每个提交信息包括SHA号,作者,时间以及标题
jay@pc MINGW64 /d/my_project/gittest (master)
$ git logcommit ea3925e786f7975265fd43eface72f48af4306dd (HEAD -> master)
Author: Jay Heng <hengjie1989@foxmail.com>
Date: Sun Mar 11 07:46:16 2018 +0800 Add initial platform and update test // 此处略去其他commit信息
...
1.2精简查看git log --pretty=oneline
// 显示所有历史提交精简信息,每个提交信息仅占一行,信息包括SHA号以及标题。
jay@pc MINGW64 /d/my_project/gittest (master)
$ git log --pretty=onelineea3925e786f7975265fd43eface72f48af4306dd (HEAD -> master) Add initial platform and update test
fdec58a389772a14f71c391214e90f5c5c00570a Initial application and test
867df08b4e13649e30926b483279dddce32750c2 (origin/master, origin/HEAD) second commit
5fe04f86701d1d0ccb710140d440fa86daab5ffb first commit
1.3完整查看git log -p
// 显示所有历史提交完整信息,比标准查看多了提交的具体文件改动信息。
jay@pc MINGW64 MINGW64 /d/my_project/gittest (master)
$ git log -pcommit ea3925e786f7975265fd43eface72f48af4306dd (HEAD -> master)
Author: Jay Heng <hengjie1989@foxmail.com>
Date: Sun Mar 11 07:46:16 2018 +0800 Add initial platform and update test diff --git a/app/platform.c b/app/platform.c
new file mode 100644
index 0000000..e69de29
diff --git a/app/test.c b/app/test.c
index e69de29..70dde01 100644
--- a/app/test.c
+++ b/app/test.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+#include <stdlib.h>
+void test(void)
+{
+ printf("this is test\n");
+}
\ No newline at end of file // 此处略去其他commit信息
...
1.4定制查看git log --pretty=format:"%opt1 %opt2" --graph
// 按指定格式显示所有提交历史信息。
jay@pc MINGW64 /d/my_project/gittest (master)
$ git log --pretty=format:"%h %an %s" --graph* ea3925e Jay Heng Add initial platform and update test
* fdec58a Jay Heng Initial application and test
* 867df08 Jay Heng second commit
* 5fe04f8 Jay first commit
其中opt选项列出如下:
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 -date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明
2.图形化查看本地历史gitk
如果你觉得git log这种命令行方式查看与显示提交记录不够直观,Git也提供了图形化方式显示提交记录。
jay@pc MINGW64 /d/my_project/gittest (master)
$ gitk
3.查看本地历史操作git reflog
无论是gitk还是git log都仅能查看最终在仓库存在的提交信息,无法查看被删除的提交,以及在本地具体Git命令操作记录,这时候你需要使用git reflog。
jay@pc MINGW64 /d/my_project/gittest (master)
$ git reflogea3925e (HEAD -> master) HEAD@{0}: am: Add initial platform and update test
fdec58a HEAD@{1}: am --abort
fdec58a HEAD@{2}: am: Initial application and test
867df08 (origin/master, origin/HEAD) HEAD@{3}: reset: moving to HEAD~1
b69153f HEAD@{4}: am: Initial application and test
867df08 (origin/master, origin/HEAD) HEAD@{5}: reset: moving to HEAD~2
610feaf HEAD@{6}: commit: Add initial platform and update test
589f65b HEAD@{7}: reset: moving to HEAD
589f65b HEAD@{8}: reset: moving to HEAD
589f65b HEAD@{9}: reset: moving to 589f65b
4378dee HEAD@{10}: commit: Initial platform and driver
589f65b HEAD@{11}: reset: moving to 589f65b
1eaa025 HEAD@{12}: reset: moving to HEAD
1eaa025 HEAD@{13}: commit: Initial platform and driver
589f65b HEAD@{14}: commit (amend): Initial application and test
0a0c0fc HEAD@{15}: commit: Initial application
867df08 (origin/master, origin/HEAD) HEAD@{16}: rebase finished: returning to refs/heads/master
867df08 (origin/master, origin/HEAD) HEAD@{17}: rebase: second commit
5fe04f8 HEAD@{18}: rebase: checkout refs/remotes/origin/master
aa9db9d HEAD@{19}: commit: second commit
5fe04f8 HEAD@{20}: reset: moving to HEAD
5fe04f8 HEAD@{21}: clone: from git@github.com:JayHeng/gittest.git
欢迎订阅
文章会同时发布到我的 博客园主页、CSDN主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

痞子衡嵌入式:第一本Git命令教程(6)- 日志(log/reflog/gitk)的更多相关文章
- 痞子衡嵌入式:第一本Git命令教程(0)- 索引
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家讲的是Git命令汇编,共12篇文章,循序渐进地介绍Git操作的完整过程. 在开始Git课程之前,需要先跟大家普及2个重要概念(四度空间.四种状 ...
- 痞子衡嵌入式:第一本Git命令教程(7.1)- 清理之缓存(stash)
今天是Git系列课程第七课,上一课我们学会了查看Git本地历史提交,今天痞子衡要讲的是Git仓库的清理操作,一共4个命令,都是日常开发中非常实用的命令,掌握这4个命令,会让你有一种玩弄Git仓库于股掌 ...
- 痞子衡嵌入式:第一本Git命令教程(1)- 准备(init/config/.gitignore)
今天是Git系列课程第一课,痞子衡给大家要讲的是创建仓库的准备工作. 1.建仓库git init 第一步是创建一个空仓库,这是一切操作的前提. // 打开git bash命令行,切换到指定目录下 ja ...
- 痞子衡嵌入式:第一本Git命令教程(3)- 变动(status/diff)
今天是Git系列课程第三课,前两课我们都是在做Git仓库准备工作,今天痞子衡要讲的是如何查看Git空间内发生的改动. 本地有了仓库,我们便可以在仓库所在目录下做文件增删改操作,为了确定改动操作的正确性 ...
- 痞子衡嵌入式:第一本Git命令教程(4)- 转移(add/rm/mv)
今天是Git系列课程第四课,上一课我们在Git空间里做了一些文件改动并且知道了如何利用Git查看这些变动,今天痞子衡要讲的是将这些变动提交到Git本地仓库前的准备工作. Git仓库目录下的文件改动操作 ...
- 痞子衡嵌入式:第一本Git命令教程(5)- 提交(commit/format-patch/am)
今天是Git系列课程第五课,上一课我们做了Git本地提交前的准备工作,今天痞子衡要讲的是Git本地提交操作. 当我们在仓库工作区下完成了文件增删改操作之后,并且使用git add将文件改动记录在暂存区 ...
- 痞子衡嵌入式:第一本Git命令教程(2)- 连接(remote/clone)
今天是Git系列课程第二课,上一课我们已经学会在本地创建一个空仓库,痞子衡今天要讲的是如何将本地仓库与远程建立联系. 1.将本地仓库挂上远程git remote 本地建好了仓库,我们希望能够挂到远程服 ...
- 痞子衡嵌入式:超级下载算法RT-UFL v1.0发布,附J-Link下安装教程
痞子衡主导的"学术"项目 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计> 历时 8 个月终于迎来了 v1.0 版发布,因为是第一个正式版,为了保证质 ...
- 痞子衡嵌入式:超级好用的可视化PyQt GUI构建工具(Qt Designer)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是PyQt GUI构建工具Qt Designer. 痞子衡开博客至今已有好几年,一直以嵌入式开发相关主题的文章为主线,偶尔穿插一些其他技术 ...
随机推荐
- python学习笔记(4)
.................................................................................................... ...
- Flume+Kafka+Storm+Hbase+HDSF+Poi整合
Flume+Kafka+Storm+Hbase+HDSF+Poi整合 需求: 针对一个网站,我们需要根据用户的行为记录日志信息,分析对我们有用的数据. 举例:这个网站www.hongten.com(当 ...
- 《SpringMVC从入门到放肆》十三、SpringMVC数据校验
上一章,我们学习了SpringMVC的自定义类型转换器,但是如果转换后的数据传递到Controller的方法中,忽然发现有某些属性为Null了,这怎么办?我们需要一种有效的数据校验机制,来对数据进行有 ...
- D. Frets On Fire 前缀和+二分
这个题真的难了我一天了,这种方法一开始没想出来,后来看了题解后明白了大致思路开始自己做但是!!!但是自己实现的时候老是一些细节出错!!!,调bug调了得有一个小时,蠢死了,这道题我一定要好好总结,总结 ...
- 口袋appnabcd
N(need)需求:依据我们学习经历的情况而言,对于初次接触的专业的学生来说,对学习的方向上会感到迷茫,不知道如何学习以及不知道学什么.比如对于计算机专业来说,对于一些软件的选择和下载,应用环境配置等 ...
- Mesos源码分析(11): Mesos-Master接收到launchTasks消息
根据Mesos源码分析(6): Mesos Master的初始化中的代码分析,当Mesos-Master接收到launchTask消息的时候,会调用Master::launchTasks函数. v ...
- 实战深度学习OpenCV(三):视频实时canny边缘检测
#include <stdio.h> #include"opencv2/opencv.hpp" using namespace cv; int main() { Vid ...
- [Swift]LeetCode350. 两个数组的交集 II | Intersection of Two Arrays II
Given two arrays, write a function to compute their intersection. Example 1: Input: nums1 = [1,2,2,1 ...
- [Swift]LeetCode494. 目标和 | Target Sum
You are given a list of non-negative integers, a1, a2, ..., an, and a target, S. Now you have 2 symb ...
- [Swift]LeetCode763. 划分字母区间 | Partition Labels
A string S of lowercase letters is given. We want to partition this string into as many parts as pos ...