git学习------>如何用git log命令来查看某个指定文件的提交历史记录
有时候接手一份新代码时,看到某些文件的改动,但不清楚这个改动的作者和原因,想查看该文件的具体提交历史记录。
今天一个同事是这样做的,直接敲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.xml
- 34b7ac981a39193ca78e0d4673ce66515c23988d [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.xml
- commit 34b7ac981a39193ca78e0d4673ce66515c23988d
- Author: oyp <oyp@runbo.net>
- 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.java
- diff --git a/frameworks/base/packages/SystemUI/AndroidManifest.xml b/frameworks/base/packages/SystemUI/AndroidManifest.xml
- old mode 100644
- new mode 100755
- index dfdc14c..5fb3545
- --- a/frameworks/base/packages/SystemUI/AndroidManifest.xml
- +++ b/frameworks/base/packages/SystemUI/AndroidManifest.xml
- @@ -126,7 +126,11 @@
- <!-- M: Add for data sim switch -->
- <uses-permission android:name="android.permission.WRITE_APN_SETTINGS"/>
- -
- +
- + <!-- added by ouyang start 2015-11-30 -->
- + <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
- + <!-- added by ouyang end 2015-11-30 -->
- +
- <application
- android:name=".SystemUIApplication"
- android:persistent="true"
- @@ -407,5 +411,14 @@
- <action android:name="android.intent.action.LOCALE_CHANGED" />
- </intent-filter>
- </receiver>
- +
- + <!-- added by ouyang start 2015-11-30 -->
- + <receiver android:name=".MyBootCompletedReceiver" >
- + <intent-filter>
- + <action android:name="android.intent.action.BOOT_COMPLETED"/>
- + </intent-filter>
- + </receiver>
- + <service android:name=".MyBatteryService"/>
- + <!-- added by ouyang end 2015-11-30 -->
- </application>
- </manifest>
这样的话,很高效、快速的查看指定文件的提交记录和记录详情。
====================================================================================
作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:http://blog.csdn.net/ouyang_peng
====================================================================================
git学习------>如何用git log命令来查看某个指定文件的提交历史记录的更多相关文章
- Git学习系列之Git基本操作拉取项目(图文详解)
前面博客 Git学习系列之Git基本操作推送项目(图文详解) 当然,如果多人协作,或者多个客户端进行修改,那么我们还要拉取(Pull ... )别人推送到在线仓库的内容下来. 大神们是不推荐使用 pu ...
- Git学习系列之Git基本操作推送项目(图文详解)
前面博客 Git学习系列之Git基本操作提交项目(图文详解) 如果完成到一定程度,那么可以推送到远端在线仓库. 推送之前,请确保你已经设置了全局的 user.name 和 user.email, 如果 ...
- git学习------>写给 Git 初学者的7个建议
PS:本文转载于(http://blog.jobbole.com/50603/),本文由 伯乐在线 - 吴鹏煜 翻译. 英文出处:(http://sixrevisions.com/web-develo ...
- Git学习系列之Git基本操作提交项目(图文详解)
前面博客 Git学习系列之Git基本操作克隆项目(图文详解) 然后可以 cd 切换到 LispGentleIntro 目录, 新增或者修改某些文件.这里只是模拟一下操作, 实际情况可能是 使用 Ecl ...
- git学习(一):git的版本库在哪儿
查看版本 git --version # 查看git的版本 设置或者查看用户名和邮箱 git config --global user.name "tuhooo" // 如果后面没 ...
- Git学习系列之Git 的缺点有哪些?
不多说,直接上干货 前面,谈及了 Git学习系列之Git 的优势有哪些? 缺点: (1)资料少(起码中文资料很少). (2)学习周期相对而言比较长. (3)不符合常规思维. (4)代码保密性差,一旦开 ...
- Linux常用基础命令整理:关机命令、查看目录下文件命令等
Linux常用基础命令整理:关机命令.查看目录下文件命令等 整理了一些Linux常用基础命令,欢迎指正. 首先记住四个热键,学会这四个键,收益一辈子. Tab按键---命令补齐功能Ctrl+c按键-- ...
- git学习(二):git config命令
不同的git config操作不同的参数文件 git config --global // 配置用户目录下的.gitconfig那文件 git config --system // 配置系统级配置文件 ...
- Git学习之路(4)- 撤销操作、删除文件和恢复文件
▓▓▓▓▓▓ 大致介绍 经过前面的学习(小白学Git)已经建立了版本库,并上传了文件,这次来学习对这些文件进行基本的操作,即: ◆ 撤销操作 ◆ 删除文件 ◆ 恢复文件 我在此之前,已经将三个文件提交 ...
随机推荐
- 使用淘宝 NPM 镜像
http://www.runoob.com/nodejs/nodejs-npm.html ************************************** 大家都知道国内直接使用 npm ...
- 广告过滤神器(ADMuncher)4.93
Ad Muncher 介绍: 浏览网页时,冷不防地被网站播放的MIDI音乐声音吓一跳,或是因为弹出的广告窗口碍事,而影响你上网络的心情.Ad Muncher支持Netscape.Inte ...
- winform 打印条码
一个winform打印功能的示例 操作步骤:1.新建winform项目及创建窗体2.拖取 打印 相关控件 PageSetupDialog . PrintDialog . PrintDocument . ...
- CI 点击图片刷新验证码
<img src="<?php echo site_url('home/login/code'); ?>" onclick= this.src="< ...
- CI 框架购物车问题
因为CI 是外国的框架.购物逻辑和中国的不一样.所以需要改进ci 框架的 cart 类: (1)先把 cart类拷贝一份到application/libaries/下 (2)因为cart中购车中的商品 ...
- Python_uuid 学习总结
1. 背景知识: UUID: 通用唯一标识符 ( Universally Unique Identifier ), 对于所有的UUID它可以保证在空间和时间上的唯一性. 它是通过MAC地址, 时间戳, ...
- dom4j api 详解
1.DOM4J简介 DOM4J是 dom4j.org 出品的一个开源 XML 解析包.DOM4J应用于 Java 平台,采用了 Java 集合框架并完全支持 DOM,SAX 和 JAXP. DOM4J ...
- windows 下安装securecrt 绿色版
- db2 设置表 not null
db2将原表列notnull属性修改为null属性的方法 今天把自己遇到的一个小问题跟大家分享一下如何修改db2数据库表中列的属性--将列的非空属性改为允许空的属性,修改数据表的某一列属性其实很简 ...
- RequireJS禁止缓存
通过配置文件可以禁止加载缓存的JS文件, 这个在开发过程中非常有用具体做法如下 require.config({ paths: { "E":"/Scripts/MyMod ...