痞子衡嵌入式:第一本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. 痞子衡开博客至今已有好几年,一直以嵌入式开发相关主题的文章为主线,偶尔穿插一些其他技术 ...
随机推荐
- worknote
一.变更注意事项 1.部署平台: a.重启服务时,通过部署平台跳到各服务器操作时,注意修改字符编码为en_US.utf-8 b.服务器之间通过部署平台的dscp命令传输文件到目标服务器:如果连接目标服 ...
- python学习:字符串
字符串 #字符串操作# 对应操作:# 1.重复输出字符串# print('hello'*2)# 2.[],[:]通过索引获取字符串中字符,这里和列表的切片操作是相同的,具体内容见列表#print('h ...
- leetcode-求众数
题目:求众数 给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. 示例 1: 输入: [3,2,3 ...
- 有关promise的技巧
其实promise的作用是将异步的代码转化为同步,这里的异步指的是request1,request2.
- python os.walk()方法--遍历当前目录的方法
前记:有个奇妙的想法并想使用代码实现,发现了一个坑,百度了好久也没发现的"填坑"的文章~~~~~~~~~ 那就由我来填 os.walk()支持相对路径 例如 os.walk(&qu ...
- Razor Page Library:开发独立通用RPL(内嵌wwwroot资源文件夹)
ASP.NET Core知多少系列:总体介绍及目录 Demo路径:GitHub-RPL.Demo 1. Introduction Razor Page Library 是ASP.NET Core 2. ...
- 在vue中使用setter改写父子组件传的值
概述 最近在用muse ui的时候碰到一个问题,简单来说是这样的,父子之间传值,父组件和子组件使用相同的props命名,并且子组件不用emit,而用等号赋值. 最后使用计算属性的setter函数解决了 ...
- [Swift]LeetCode798. 得分最高的最小轮调 | Smallest Rotation with Highest Score
Given an array A, we may rotate it by a non-negative integer K so that the array becomes A[K], A[K+1 ...
- 记一次令人窒息的线上fullgc调优
今天第二篇采坑了... ... 现场因为处理太急促没有保留,而且是一旁协助,没有收集到所有信息实在是有些遗憾...只能靠记忆回想一些细节 情况是一台服务器一启动就开始full gc,短短1分钟可以有几 ...
- python获取当前运行程序的名字
import os filename = os.path.abspath(__file__) print filename 打印结果: E:\bluedon\test.py