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)已经建立了版本库,并上传了文件,这次来学习对这些文件进行基本的操作,即: ◆ 撤销操作 ◆ 删除文件 ◆ 恢复文件 我在此之前,已经将三个文件提交 ...
随机推荐
- JS高程3:DOM-节点层次
DOM是一个API,通过该API可以操作HTML文档或者XML文档. DOM将HTML或者XML文档描绘成一个多层节点结构. 文档节点是HTML或者XML文档的根节点,同时也是其他节点的根节点,因为每 ...
- 在元素的装载数量明确的时候HashMap的大小应该如何选择。
今天看到美团招聘给出了一道小题目,关于HashMap的性能问题.问题如下: java hashmap,如果确定只装载100个元素,new HashMap(?)多少是最佳的,why? 要回答这个问题,首 ...
- Jquery Deferred 详解
近期由于公司项目主要由我来负责前端,所以打算优化一下代码.在jquery 里面有个Deferred的对象.为了研究这个也看了不少资料,其中阮一峰的博客写的很详细,这里转载一下. 一.什么是deferr ...
- CDH 安装配置指南(Tarball方式)
采用CDH Tarbal方式安装Hadoop集群. 1. 环境组件版本 组件名称 组件版本 用途 jdk 1.8 jdk-8u191-linux-x64 oracle jdk mysql mysql- ...
- Mock数据使用的Util
package com.xxx.common.util; import java.lang.reflect.Field; import java.lang.reflect.Method; import ...
- 本地连接linux虚拟机的方法
1.给虚拟机添加一个ehtX: 2. 3.添加一个ethX 4. 5.设置使用的是哪一个网卡,ifconfig的时候变会得到相应的ip 6. 再在cmd那ping ifconfig出来的自动获取的ip ...
- HTML5 选择前置摄像头,选择后置摄像头
最近发现我写的都是乱七八糟的,觉得应该给大家带点福利,于是写了这篇 背景:最近想做个web应用,需要用到摄像头,但是发现默认一直是前置摄像头,拍照很麻烦,于是找了很多文章,居然没有人提到,只好FQ去找 ...
- ProtocolBuffer在Android端的解析
开题篇 近期公司在使用Protocol Buffer替代原先的json作为移动端的数据交互格式.虽然服务端和CTO把这项新技术吹的天花乱坠,说什么体积小,不易被破解乱七八糟的.可是作为Android端 ...
- 5、手把手教React Native实战之盒子模型BoxApp
用HTML5和React Native分别实现盒子模型显示 写法不一样: 1.样式 ![样式不同](http://image17-c.poco.cn/mypoco/myphoto/20160323/0 ...
- 如何下载ubuntu桌面,并使用
下载ubuntu,进行linux系统的操作 1.下载ubuntu 百度搜索ubuntu或直达下载链接http://cn.ubuntu.com/download/ 你可以选择,优麒麟16或者Ubuntu ...