博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git学习------>如何用git log命令来查看某个指定文件的提交历史记录
阅读量:6151 次
发布时间:2019-06-21

本文共 3748 字,大约阅读时间需要 12 分钟。

       有时候接手一份新代码时,看到某些文件的改动,但不清楚这个改动的作者和原因,想查看该文件的具体提交历史记录。

       今天一个同事是这样做的,直接敲git log命令,然后再使用vim命令的搜索关键字的方法来查看该文件的提交记录,如下所示:

例如:我想查看frameworks/base/packages/SystemUI/AndroidManifest.xml该文件的提交记录,敲了git log命令后,直接按“/”然后加入该文件的路径,后就可以搜索该文件名作为关键字,然后按N和Ctrl+N进行上下搜索结果切换,如下所示:

这样的话,很慢很繁琐,效率比较慢。

下面我介绍一个比较快捷的方法来查看某个指定文件的提交记录,使用的还是git log命令,只是加了一些参数而已。

git log --pretty=oneline 文件名

例如:想搜索刚才的frameworks/base/packages/SystemUI/AndroidManifest.xml文件的提交记录,就可以使用命令:

oyp@buildServer3:~/E580$ git log --pretty=oneline frameworks/base/packages/SystemUI/AndroidManifest.xml34b7ac981a39193ca78e0d4673ce66515c23988d     [add a new feature to show the battery voltage value and level]     1.Support show the level of c1d6879f098775f1d703dfcfe814c4d726be47ad [Create MT6753-6M AP source repository]

如上所示,打印出来的就是针对文件frameworks/base/packages/SystemUI/AndroidManifest.xml文件的所有的改动历史,每一行最前面的那一长串数字就是每次提交形成的哈希值,接下来使用git show即可显示具体的某次的改动的修改。

下面就可以使用git show 命令查看具体的修改详情了。如:

git show <git提交版本号> <文件名>

git show 34b7ac981a39193ca78e0d4673ce66515c23988d frameworks/base/packages/SystemUI/AndroidManifest.xml
这样指定版本号,指定文件的就可以直接查看该文件的修改详情,不要看该版本号其他文件的修改。如下所示:

oyp@buildServer3:~/E580$ git show 34b7ac981a39193ca78e0d4673ce66515c23988d frameworks/base/packages/SystemUI/AndroidManifest.xmlcommit 34b7ac981a39193ca78e0d4673ce66515c23988dAuthor: oyp 
Date: Mon Nov 30 19:47:48 2015 +0800 [add a new feature to show the battery voltage value and level] 1.Support show the level of battery voltage (0-5 levels). 2.Support show the battery voltage value (accurate to two decimal places). Appllicable Project: E580 Appllicable model: All Except IKE new file: frameworks/base/packages/SystemUI/res/drawable-hdpi/battery_voltage_0.png new file: frameworks/base/packages/SystemUI/res/drawable-hdpi/battery_voltage_1.png new file: frameworks/base/packages/SystemUI/res/drawable-hdpi/battery_voltage_2.png new file: frameworks/base/packages/SystemUI/res/drawable-hdpi/battery_voltage_3.png new file: frameworks/base/packages/SystemUI/res/drawable-hdpi/battery_voltage_4.png new file: frameworks/base/packages/SystemUI/res/drawable-hdpi/battery_voltage_5.png new file: frameworks/base/packages/SystemUI/src/com/android/systemui/MyBatteryService.java new file: frameworks/base/packages/SystemUI/src/com/android/systemui/MyBootCompletedReceiver.java modified: frameworks/base/packages/SystemUI/AndroidManifest.xml modified: frameworks/base/packages/SystemUI/res/layout/system_icons.xml modified: frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java modified: frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java modified: frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.javadiff --git a/frameworks/base/packages/SystemUI/AndroidManifest.xml b/frameworks/base/packages/SystemUI/AndroidManifest.xmlold mode 100644new mode 100755index dfdc14c..5fb3545--- a/frameworks/base/packages/SystemUI/AndroidManifest.xml+++ b/frameworks/base/packages/SystemUI/AndroidManifest.xml@@ -126,7 +126,11 @@
-+ +
+
+
+
+ +
+
+
+
+
+
+
+

这样的话,很高效、快速的查看指定文件的提交记录和记录详情。

         ====================================================================================

  作者:欧阳鹏  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址

====================================================================================

你可能感兴趣的文章
linux:yum和apt-get的区别
查看>>
Sentinel 1.5.0 正式发布,引入 Reactive 支持
查看>>
数据库之MySQL
查看>>
2019/1/15 批量删除数据库相关数据
查看>>
数据类型的一些方法
查看>>
Mindjet MindManager 2019使用教程:
查看>>
详解 CSS 绝对定位
查看>>
AOP
查看>>
NGUI Label Color Code
查看>>
.NET Core微服务之基于Polly+AspectCore实现熔断与降级机制
查看>>
vue组件开发练习--焦点图切换
查看>>
浅谈OSI七层模型
查看>>
Webpack 2 中一些常见的优化措施
查看>>
移动端响应式
查看>>
python实现牛顿法求解求解最小值(包括拟牛顿法)【最优化课程笔记】
查看>>
js中var、let、const的区别
查看>>
腾讯云加入LoRa联盟成为发起成员,加速推动物联网到智联网的进化
查看>>
从Python2到Python3:超百万行代码迁移实践
查看>>
Windows Server已可安装Docker,Azure开始支持Mesosphere
查看>>
简洁优雅地实现夜间模式
查看>>