git學習------>如何用git log命令來查看某個指定文件的提交歷史記錄

       有時候接手一份新代碼時,看到某些文件的改動,但不清楚這個改動的做者和緣由,想查看該文件的具體提交歷史記錄。css

       今天一個同事是這樣作的,直接敲git log命令,而後再使用vim命令的搜索關鍵字的方法來查看該文件的提交記錄,以下所示:html

例如:我想查看frameworks/base/packages/SystemUI/AndroidManifest.xml該文件的提交記錄,敲了git log命令後,直接按「/」而後加入該文件的路徑,後就能夠搜索該文件名做爲關鍵字,而後按N和Ctrl+N進行上下搜索結果切換,以下所示:java


這樣的話,很慢很繁瑣,效率比較慢。android


下面我介紹一個比較快捷的方法來查看某個指定文件的提交記錄,使用的仍是git log命令,只是加了一些參數而已。git


git log --pretty=oneline 文件名

例如:想搜索剛纔的frameworks/base/packages/SystemUI/AndroidManifest.xml文件的提交記錄,就能夠使用命令:vim

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便可顯示具體的某次的改動的修改。app


下面就能夠使用git show 命令查看具體的修改詳情了。如:ui

git show <git提交版本號> <文件名>spa

 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>



這樣的話,很高效、快速的查看指定文件的提交記錄和記錄詳情。.net


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

  做者:歐陽鵬  歡迎轉載,與人分享是進步的源泉!

  轉載請保留原文地址http://blog.csdn.net/ouyang_peng

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

相關文章
相關標籤/搜索