教你如何檢視 Git 提交中發生了什麼變化
導讀 | Git 提供了幾種方式可以幫你快速檢視提交中哪些檔案被改變。 |
如果你每天使用 Git,應該會提交不少改動。如果你每天和其他人在一個專案中使用 Git,假設 每個人 每天的提交都是安全的,你會意識到 Git 日誌會變得多麼混亂,似乎永恆地滾動著變化,卻沒有任何跡象表明修改了什麼。
那麼,你該怎樣檢視指定提交中檔案發生哪些變化?這比你想的容易。
要想知道指定提交中哪些檔案發生變化,可以使用 git log --raw 。這是發現一個提交影響了哪些檔案的最快速、最方便的方法。git log 一般都沒有被充分利用,主要是因為它有太多的格式化選項,許多使用者在面對很多選擇以及在一些情況下不明所以的文件時,會望而卻步。
然而,Git 的日誌機制非常靈活,--raw 選項提供了當前分支中的提交日誌,以及更改的檔案列表。
以下是標準的 git log 輸出:
$ git log commit fbbbe083aed75b24f2c77b1825ecab10def0953c (HEAD -> dev, origin/dev) Author: tuxDate: Sun Nov 5 21:40:37 2020 +1300 exit immediately from failed download commit 094f9948cd995acfc331a6965032ea0d38e01f03 (origin/master, master) Author: TuxDate: Fri Aug 5 02:05:19 2020 +1200 export makeopts from etc/example.conf commit 76b7b46dc53ec13316abb49cc7b37914215acd47 Author: TuxDate: Sun Jul 31 21:45:24 2020 +1200 fix typo in help message
即使作者在提交訊息中指定了哪些檔案發生變化,日誌也相當簡潔。
以下是 git log --raw 輸出:
$ git log --raw commit fbbbe083aed75b24f2c77b1825ecab10def0953c (HEAD -> dev, origin/dev) Author: tuxDate: Sun Nov 5 21:40:37 2020 +1300 exit immediately from failed download :100755 100755 cbcf1f3 4cac92f M src/example.lua commit 094f9948cd995acfc331a6965032ea0d38e01f03 (origin/master, master) Author: TuxDate: Fri Aug 5 02:05:19 2020 +1200 export makeopts from etc/example.conf :100755 100755 4c815c0 cbcf1f3 M src/example.lua :100755 100755 71653e1 8f5d5a6 M src/example.spec :100644 100644 9d21a6f e33caba R100 etc/example.conf etc/example.conf-default commit 76b7b46dc53ec13316abb49cc7b37914215acd47 Author: TuxDate: Sun Jul 31 21:45:24 2020 +1200 fix typo in help message :100755 100755 e253aaf 4c815c0 M src/example.lua
這會準確告訴你哪個檔案被新增到提交中,哪些檔案發生改變(A 是新增,M 是修改,R 是重新命名,D 是刪除)。
git whatchanged 命令是一個遺留命令,它的前身是日誌功能。文件說使用者不應該用該命令替代 git log --raw,並且暗示它實質上已經被廢棄了。不過,我還是覺得它是一個很有用的捷徑,可以得到同樣的輸出結果(儘管合併提交的內容不包括在內),如果它被刪除的話,我打算為它建立一個別名。如果你只想檢視已更改的檔案,不想在日誌中看到合併提交,可以嘗試 git whatchanged 作為簡單的助記符。
你不僅可以看到哪些檔案發生更改,還可以使用 git log 顯示檔案中發生了哪些變化。你的 Git 日誌可以生成一個內聯差異,用 --patch 選項可以逐行顯示每個檔案的所有更改:
commit 62a2daf8411eccbec0af69e4736a0fcf0a469ab1 (HEAD -> master) Author: TuxDate: Wed Mar 10 06:46:58 2021 +1300 commit diff --git a/hello.txt b/hello.txt index 65a56c3..36a0a7d 100644 --- a/hello.txt +++ b/hello.txt @@ -1,2 +1,2 @@ Hello -world +opensource.com
在這個例子中,“world” 這行字從 hello.txt 中刪掉,“opensource.com” 這行字則新增進去。
如果你需要在其他地方手動進行相同的修改,這些補丁patch可以與常見的 Unix 命令一起使用,例如 diff 與 patch。補丁也是一個好方法,可以總結指定提交中引入新資訊的重要部分內容。當你在衝刺階段引入一個 bug 時,你會發現這裡的內容就是非常有價值的概述。為了更快地找到錯誤的原因,你可以忽略檔案中沒有更改的部分,只檢查新程式碼。
你不必理解引用、分支和提交雜湊,就可以檢視提交中更改了哪些檔案。你的 Git 日誌旨在向你報告 Git 的活動,如果你想以特定方式格式化它或者提取特定的資訊,通常需要費力地瀏覽許多文件來組合出正確的命令。幸運的是,關於 Git 歷史記錄最常用的請求之一隻需要一兩個選項:--raw 與 --patch。如果你不記得 --raw,就想想“Git,什麼改變了?”,然後輸入 git whatchanged。
via:
作者:Seth Kenlon 選題:lujun9972 譯者:DCOLIVERSUN 校對:wxy
本文由 LCTT 原創編譯, 中國 榮譽推出
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2772691/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- git檢視提交歷史Git
- Git 檢視提交歷史Git
- ES6走走看看—字元到底發生了什麼變化字元
- git blame檢視檔案由哪次提交修改Git
- git log檢視提交歷史記錄Git
- git簡略形式檢視提交歷史Git
- 二、GIT基礎-檢視提交歷史Git
- Git(7)-- 檢視提交歷史(git log 命令詳解)Git
- new Vue發生了什麼Vue
- 蘋果和微信大搞創意精品的背後,是什麼發生了變化?蘋果
- 【第八篇】- Git 檢視提交歷史Git
- git檢視指定提交檔案的內容Git
- JS每日一題:new Vue()中發生了什麼?JS每日一題Vue
- 在Linux中,什麼是環境變數?如何設定和檢視環境變數?Linux變數
- go func 時發生了什麼Go
- Linux中如何檢視系統是什麼版本?Linux
- 檢視提交歷史 —— Git 學習筆記 11Git筆記
- git 檢視當前分支指向提交物件SHA值Git物件
- 從奧巴馬假視訊到ZAO,換臉和人臉檢測技術發生了什麼?
- 當執行時,發生了什麼?
- kubelet 建立 Pod 前發生了什麼?
- 猜猜體育課發生了什麼?
- Git study Day01建立,修改,提交,檢視修訂Git
- git提交中出現沒有變化的檔案Git
- 教你如何檢視linux版本Linux
- 過去十年,遊戲產業發生了什麼滄桑鉅變?遊戲產業
- RAG實戰4-RAG過程中發生了什麼?
- 檢視中with check option的作用是什麼?
- Git中撤銷提交Git
- 【Django】runserver 0.0.0.0:0 後,究竟發生了什麼DjangoServer
- docker container run 背後發生了什麼?DockerAI
- 啟動vue專案時發生了什麼Vue
- System.gc 之後到底發生了什麼 ?GC
- ?「推薦收藏」【Git實戰專題】程式碼提交錯誤怎麼辦?教你如何回退版本!Git
- 如何檢視Linux系統是什麼版本?Linux
- MySql 什麼是檢視MySql
- 在Linux中,日誌檔案作用是什麼及如何檢視?Linux
- vue中data改變後,如何讓檢視同步更新Vue