Git---檢視提交歷史記錄
概述:
我們是如何記錄我們的人生----日記,如果你那天閒來無事可以翻一翻,說明我們都是有故事的人,哈哈,如果我們想要檢視Git提交歷史記錄,怎麼辦?
1.檢視提交歷史
語法:git log
commit d521dd00f9b8cc3e54064abb3d8125d88e6ba412
Author: chenliang <[email protected]>
Date: Wed Jun 7 17:28:47 2017 +0800
Hello
commit 9ddce59dbacb7160fab09c4da14523e609e9428a
Author: chenliang < [email protected]>
Date: Wed Jun 7 17:03:45 2017 +0800
將計就計
commit e9128101a2572cf0b2398ca5a281c796676d0352
Author: chenliang <[email protected]>
Date: Wed Jun 7 16:58:54 2017 +0800
我提交了README
commit 6ada7cad2883d636837d6072aa27cbc8f07988cb
Author: chenliang <[email protected] >
Date: Wed Jun 7 16:24:38 2017 +0800
D:/install/Git/aa
commit 063c0f280259c2d2a97abc08bc27dbe0b01e6e6f
Author: chenliang <10401016[email protected]>
Date: Wed Jun 7 09:10:29 2017 +0800
README
總結:
- 1.時間是倒序
- 2.commit 後面就是計算出來的SHA-1校驗
- 3.Author 提交人 這個是在配置git config 時候配置的
- 4.Date:提交日期
- 5.提交內容(提交時候的註釋)
那麼問題來,如果有很多歷史記錄,我想看特定記錄,是不是需要檢索和篩選功能?
常用的引數 -p 表示每次提交的內容差異(類似使用 git diff) -2 表示最近兩次提交
$ git log -p -2
commit d521dd00f9b8cc3e54064abb3d8125d88e6ba412
Author: chenliang <[email protected]>
Date: Wed Jun 7 17:28:47 2017 +0800
Hello
diff --git a/README b/README
deleted file mode 100644
index abe187b..0000000
--- a/README
+++ /dev/null
@@ -1 +0,0 @@
-將計就計
diff --git "a/~/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243 - \345\211\257\346\234\254 (2).txt" "b/~/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243 - \345\211\257\346\234\254 (2).txt"
deleted file mode 100644
index e69de29..0000000
diff --git "a/~/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243 - \345\211\257\346\234\254 - \345\211\257\346\234\254.txt" "b/~/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243 - \345\211\257\346\234\254 - \345\211\257\346\234\254.txt"
deleted file mode 100644
index e69de29..0000000
diff --git "a/~/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243 - \345\211\257\346\234\254.txt" "b/~/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243 - \345\211\257\346\234\254.txt"
deleted file mode 100644
index e69de29..0000000
diff --git "a/~/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt" "b/~/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt"
deleted file mode 100644
index e69de29..0000000
commit 9ddce59dbacb7160fab09c4da14523e609e9428a
Author: chenliang <[email protected]>
Date: Wed Jun 7 17:03:45 2017 +0800
將計就計
diff --git a/README b/README
index 1a4cca6..abe187b 100644
--- a/README
+++ b/README
@@ -1,2 +1 @@
-Hello World!
-Hello World 這行是我新寫的
+將計就計
(END)
總結:
- diff表示兩個檔案不同
- index(索引)提交動作產生索引
- -HelloWorld! 前面-表示刪除
- +將計就計 前面+表示新增
看一些統計資訊用--stat
$ git log --stat
commit d521dd00f9b8cc3e54064abb3d8125d88e6ba412
Author: chenliang <[email protected]>
Date: Wed Jun 7 17:28:47 2017 +0800
Hello
README | 1 -
...6\234\254\346\226\207\346\241\243 - \345\211\257\346\234\254 (2).txt" | 0
...46\241\243 - \345\211\257\346\234\254 - \345\211\257\346\234\254.txt" | 0
...7\346\234\254\346\226\207\346\241\243 - \345\211\257\346\234\254.txt" | 0
...\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt" | 0
5 files changed, 1 deletion(-)
commit 9ddce59dbacb7160fab09c4da14523e609e9428a
Author: chenliang <[email protected]>
Date: Wed Jun 7 17:03:45 2017 +0800
將計就計
README | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
commit e9128101a2572cf0b2398ca5a281c796676d0352
:
總結:檔案被新增刪除記錄都會被儲存
看見最後的冒號(:)表示還有記錄,回車就看到
現在看起來格式不符合要求,寫過用java輸出XML檔案要想格式變得好看,format.pretty常量,git也是這樣的
語法:git log --pretty = oneline (oneline表示顯式一行=SHA-1+註釋) ,當然還有其他值,例如:short、full、fuller
$ git log -2 --pretty=oneline
d521dd00f9b8cc3e54064abb3d8125d88e6ba412 Hello
9ddce59dbacb7160fab09c4da14523e609e9428a 將計就計
如果這個你看起來不爽,可以自定義
語法:git log --pretty=format:"你的規則" (注意等號兩邊不能有空格)
$ git log --pretty=format:"%h - %an, %ar : %s" -2
d521dd0 - chenliang, 51 minutes ago : Hello
9ddce59 - chenliang, 76 minutes ago : 將計就計
選項 說明
%H 提交物件(commit)的完整雜湊字串
%h 提交物件的簡短雜湊字串
%T 樹物件(tree)的完整雜湊字串
%t 樹物件的簡短雜湊字串
%P 父物件(parent)的完整雜湊字串
%p 父物件的簡短雜湊字串
%an 作者(author)的名字
%ae 作者的電子郵件地址
%ad 作者修訂日期(可以用 --date= 選項定製格式)
%ar 作者修訂日期,按多久以前的方式顯示
%cn 提交者(committer)的名字
%ce 提交者的電子郵件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式顯示
%s 提交說明
如果你還覺得不夠,最後一招,--graph,用圖形拯救你,不過在分支合併時候展示非凡的特效
語法: git log --pretty=format:"%h %s" --grapth (注意是兩個短槓)
* 2e78057 Merge branch 'master' into smoke
|\
| * b93ec95 Make another attempt to identify new and deleted files in Grit#Diff
| * 00ed843 Ensure RubyGit's diff matches real Git's output
| * 5012845 Fix RubyGit's diff to detect additions and deletions
| * fcd9228 use a \t to avoid tab => space conversion
* | 7b3b447 add contributing section to readme
* | c701103 have Commit#short_message use first non-empty message line. closes gh-1.
* | 1af4e64 Merge commit 'b06e7ff41ad95b6fe1dbd08df7530c9d5bf76840' into smoke
|\ \
| * | b06e7ff a few lines on gems required for testing
* | | d5cde35 windows support
* | | 797d75e update history
* | | 0bbd902 Merge commit 'a88d1d96985074db9c37f3f50a45fd089d8b4a12' into smoke
|\ \ \
:
當然git log 還有其他引數如下:
-p 按補丁格式顯示每個更新之間的差異。
--stat 顯示每次更新的檔案修改統計資訊。
--shortstat 只顯示 --stat 中最後的行數修改新增移除統計。
--name-only 僅在提交資訊後顯示已修改的檔案清單。
--name-status 顯示新增、修改、刪除的檔案清單。
--abbrev-commit 僅顯示 SHA-1 的前幾個字元,而非所有的 40 個字元。
--relative-date 使用較短的相對時間顯示(比如,“2 weeks ago”)。
--graph 顯示 ASCII 圖形表示的分支合併歷史。
--pretty 使用其他格式顯示歷史提交資訊。可用的選項包括 oneline,short,full,fuller 和 format(後跟指定格式)。
2.限制輸出長度
語法:git log 引數=值
$ git log --since=2.weeks
commit d521dd00f9b8cc3e54064abb3d8125d88e6ba412
Author: chenliang <[email protected]>
Date: Wed Jun 7 17:28:47 2017 +0800
Hello
commit 9ddce59dbacb7160fab09c4da14523e609e9428a
Author: chenliang <[email protected]>
Date: Wed Jun 7 17:03:45 2017 +0800
將計就計
commit e9128101a2572cf0b2398ca5a281c796676d0352
Author: chenliang <[email protected]>
Date: Wed Jun 7 16:58:54 2017 +0800
我提交了README
commit 6ada7cad2883d636837d6072aa27cbc8f07988cb
Author: chenliang <[email protected]>
Date: Wed Jun 7 16:24:38 2017 +0800
D:/install/Git/aa
:
如果你想看你提交某個字串關鍵字
$ git log -S '將計就計'
commit d521dd00f9b8cc3e54064abb3d8125d88e6ba412
Author: chenliang <[email protected]>
Date: Wed Jun 7 17:28:47 2017 +0800
Hello
commit 9ddce59dbacb7160fab09c4da14523e609e9428a
Author: chenliang <[email protected]>
Date: Wed Jun 7 17:03:45 2017 +0800
將計就計
其他選選項
-(n) 僅顯示最近的 n 條提交
--since, --after 僅顯示指定時間之後的提交。
--until, --before 僅顯示指定時間之前的提交。
--author 僅顯示指定作者相關的提交。
--committer 僅顯示指定提交者相關的提交。
--grep 僅顯示含指定關鍵字的提交
-S 僅顯示新增或移除了某個關鍵字的提交
總結:主要對於git log 展示和檢索過濾資料。
相關推薦
Git---檢視提交歷史記錄
概述: 我們是如何記錄我們的人生----日記,如果你那天閒來無事可以翻一翻,說明我們都是有故事的人,哈哈,如果我們想要檢視Git提交歷史記錄,怎麼辦? 1.檢視提交歷史 語法:git log commit d521dd00f9b8cc3e54064abb3d8125d88e
Git - 檢視提交歷史
本文講解使用 git 等工具檢視提交歷史的幾種方式。 git log 在我理解中,實際上後面講的各種方法都是基於 git log 命令列工具,且對於程式設計師而言,命令列才是正統; 預設不用任何引數的話,git log 會按提交時間列出所有的更新,最近的更新排在最上面。每次更新都有一
Git的學習與使用(八)——Git 檢視提交歷史
Git 檢視提交歷史 在使用 Git 提交了若干更新之後,又或者克隆了某個專案,想回顧下提交歷史,我們可以使用 git log 命令檢視。 針對我們前一章節的操作,使用 git log 命令列出歷史提交記錄如下: $ git log commit 88afe0e02ad
git檢視提交歷史並進行程式碼回退的方法
那麼如何檢視一個檔案所進行過的提交呢? 在git下來的原始碼目錄下,執行git log 檔名 即可檢視到有關此檔案的所有提交; 例如: [email protected]:~/plugins/automount$ git log gsd-manager.c commit 28810e41dbdd
【Git 教程(7)】 Git檢視提交歷史、Git標籤
Git 檢視提交歷史 在使用 Git 提交了若干更新之後,又或者克隆了某個專案,想回顧下提交歷史,我們可以使用 git log 命令檢視。 針對我們前一章節的操作,使用 git log 命令列出歷史提交記錄如下: $ git log commit 88afe0e02a
Git檢視提交歷史
Git 檢視提交歷史 在使用 Git 提交了若干更新之後,又或者克隆了某個專案,想回顧下提交歷史,我們可以使用 git log 命令檢視。 針對我們前一章節的操作,使用 git log 命令列出歷史提交記錄如下: $ git log commit 88afe0e02a
Git檢視提交歷史、Git標籤
1、克隆遠端指定分支的程式碼倉庫到本地指定目錄 git clone -b lfFranceTelecomDemo [email protected]:T5/grasper.git grasper-lfFranceTelecomDemo 其中,-b引數用於指定 分
Git5.Git檢視提交歷史&版本回退
檢視提交歷史 你不斷對檔案進行修改,然後不斷提交修改到版本庫裡,就好比玩RPG遊戲時,每通過一關就會自動把遊戲狀態存檔,如果某一關沒過去,你還可以選擇讀取前一關的狀態。有些時候,在打Boss之前,你會手動存檔,以便萬一打Boss失敗了,可以從最近的地方重新開始。Git也是一
git倉庫刪除所有提交歷史記錄
-a git tac gin checkout git push 分支 init tail stackoverflow原問題地址:http://stackoverflow.com/questions/13716658/how-to-delete-all-commit-hi
git刪除所有提交歷史記錄
mes 代碼 upd 本地 delete 並且 one IT ren 把舊項目提交到git上,但是會有一些歷史記錄,這些歷史記錄中可能會有項目密碼等敏感信息。如何刪除這些歷史記錄,形成一個全新的倉庫,並且保持代碼不變呢? 以下方法是在當前的分支下新建一個分支,然後把之前分支
git實操筆錄一:刪除所有提交歷史記錄,成為一個新倉庫
在使用git的過程中,大家有時會複製一個git倉庫專案作為模板進行新專案開發,這樣老專案提交的歷史記錄也同樣存在新專案中,我們該怎麼去掉這些歷史記錄呢?讓這個新專案成為一個乾淨的新的專案,可以看看我的操作: 1.建立新分支並且切換到新分支中: git checkout --o
git倉庫刪除所有提交歷史記錄,成為一個乾淨的新倉庫
把舊專案提交到Git上,但是會有一些歷史記錄,這些歷史記錄中可能會有專案密碼等敏感資訊。如何刪除這些歷史記錄,形成一個全新的倉庫,並且保持程式碼不變呢? 步驟和程式碼如下: 1.Checkout git checkout --orphan latest_branch 2.
Git命令(檢視倉庫歷史記錄)
git log 命令 // 終端顯示 git log 命令的輸出結果 zhanghuabin-mac:course-git-blog-project zhanghuabin$ git log commit a3dc99a197c66ccb87e3f49055
Git 提交歷史記錄
一、檢視舊提交 在引數形式上,git log 和 git log HEAD 是一樣的,輸出每一個可以從 HEAD 找到的歷史記錄中的提交日誌訊息。注意當回溯歷史記錄的時候,Git 是依附於提交圖的,而不是時間。 限制歷史記錄的一種技術是使用 since..u
Git--log 檢視提交歷史
git中檢視提交歷史的話,使用的是 git log命令,具體命令及含義如下: 注意:以下截圖中, Author 表示對程式碼做出修改的人 AuthorDate 表示對程式碼做出
git學習------>如何修改git已提交的記錄中的Author和Email?
一、背景 最近搭建好GitLab後,準備陸陸續續的將之前在SVN倉庫中儲存的程式碼遷移到GitLab上,昨天順利將三個Android元件的程式碼遷移到GitLab後,其他同事發現遷移是成功了,但是pull下來命令後檢視git log 發現所有人的有些都配
將CVS遷移到Git並保留歷史記錄和分支
二話不說,先看程式碼:cat run.sh #!/bin/sh #rsync -av [email protected]::/cvshome/module/ /data/cvs_migration/CVSRepo/module rm -rf /data/cv
Activiti檢視流程歷史記錄(六)
1.畫流程圖。 2.部署流程。 3.啟動流程例項。 4.檢視流程任務(可無)。 5.辦理任務。 6.檢視流程歷史記錄。 流程引擎: ProcessEngine pe = ProcessEngines.
git commit提交次數記錄合併
1、在自己分支執行: git log 2、然後copy 你想要進行合併的上一條 唯一生成的一長串標識 3、:q 回到自己的分支,執行:git rebase --interactive "在log中
檢視修改的歷史記錄 git log 命令 和 返回上一次修改版本 git reset 、git reflog(五)
上一篇,已經學會了修改檔案,然後再把修改檔案提交到Git版本庫,now,再重複執行一次,修改index.html檔案如下: 然後執行新增、提交: 像這樣,你不斷對檔案進行修改,然後不斷提交修改到版本庫裡,每次修改到一定程度時,再提交;一旦你把檔案改亂了,或者誤刪了檔案,還可以從最