Git 檢視檔案的歷史

sparkdev發表於2016-08-08

用慣了tfs,剛一接觸git感覺很不順手,特別是一些很基本的操作,用起來都怪怪的(可能是不習慣命令列的原因吧)。
下面把檢視檔案歷史的用例小結一下。


檢視某個檔案的修改歷史

在git中檢視歷史的命令主要是git log,要檢視某個檔案的修改歷史可以這樣:

$ git log -- begin.txt

可以新增不同的選項讓輸出的內容或格式有所不同。

$ git log -p -- begin.txt

-p 選項可以輸出每次提交中的diff, 但個人感覺會把輸出搞得很長、很亂,不容易找到重點。
個人比較喜歡的方式是:

$ git log --pretty=oneline -- filename

在log 命令中加入 --pretty=oneline 選項會讓結果看起來清爽一些,但是隻能看到comments,看不到提交的使用者和日期。
這也能夠讓我們集中注意力快速找到關注的提交記錄。
然後使用 git show命令檢視完整的提交內容。

當然,除了命令列工具您也可以使用GUI程式檢視檔案的歷史記錄:
gitk filename


檢視歷史中的檔案內容

當我們使用 git log 命令找到了某次提交,並且想看看這次提交時檔案的完整內容。
這時,我們需要使用 git show 命令:

$ git show xxxxx:filename

也許此時你並不是看看就算了,你想要使用這個版本的檔案更新工作區中的檔案。
直接從 git show 命令的輸出中拷貝內容是個不錯的選擇。
但也可以通過組合使用不同的命令來實現:

$ git checkout <commit> --filename
$ git reset filename

此時只有工作區被更新了(你也可以把他當做是一次回滾操作)。

比較歷史中不同的檔案版本

我們經常使用版本控制工具來對比提交歷史中的兩個檔案,下面看看用 git 怎麼做:

$ git diff xxxx1 xxxx2 -- filename

 

相關文章