1. 程式人生 > >Git 提交歷史記錄

Git 提交歷史記錄

一、檢視舊提交
在引數形式上,git log 和 git log HEAD 是一樣的,輸出每一個可以從 HEAD 找到的歷史記錄中的提交日誌訊息。注意當回溯歷史記錄的時候,Git 是依附於提交圖的,而不是時間。

限制歷史記錄的一種技術是使用 since..until 這樣的形式來指定提交的範圍。給定一個範圍,git log 將會把在 since 到 until 之間的所有提交顯示出來。下面給出一個例子。

$ git log --pretty=short --abbrev-commit master~5..master~3
commit eac5baa
Author: Jon Loeliger <
[email protected]
> moved data to mydata commit 01f0226 Author: Jon Loeliger <[email protected]> moved data to newdata

這裡 git log 顯示了在 master~5 到 master~3 之間的所有提交,就是主分支上之前第4次和第5次提交。
前面例子引入的格式 –pretty=short 調整了每個提交的資訊數量,並且還有其他幾個選項,包括 online、short 和 full。–abbrev-commit 只是簡單的請求縮寫雜湊ID。

使用 -p 選項來輸出提交引進的補丁或變更。

$ git log -1 -p eac5baa
commit eac5baa1040a823a19d62c485566d692595bd1e5
Author: Jon Loeliger <[email protected]>
Date:   Sat Aug 5 10:30:20 2017 +0800

moved data to mydata

diff --git a/mydata b/mydata
new file mode 100644
index 0000000..a3c9c79
--- /dev/null
+++ b/mydata
@@ -0,0 +1,2 @@
+new data
+and some more data now
\ No newline at end of file

-1也是一個不錯的選擇,它會輸出限制為一個提交。也可以使用 -n 來將輸出限制為最多 n 個提交。

–stat 選項列舉了提交中所更改的檔案以及每個提交的檔案中有多少行做了改動。

$ git log --pretty=short --stat master~3..master~1
commit e818fb29279add451d130af367ee2e58e8851ca9
Author: Jon Loeliger <[email protected]>

add hello.txt

 hello.txt | 1 +
 1 file changed, 1 insertion(+)

commit 726f3d32595255e243925ed1177fb621122a3508
Author: Jon Loeliger <[email protected]>

delete newdata

 newdata | 2 --
 1 file changed, 2 deletions(-)

另一個檢視物件庫中的物件資訊的命令是 git show。可以使用它來檢視某個提交。

$ git show HEAD~2

或者檢視某個特定的 blob 物件資訊。

$ git show origin/master:Makefile

顯示的是 origin/master 分支的 Makefile blob。

二、提價圖
Git 使用的一種——有向無環圖(DAG)。
一些工具,如 gitk 和 git show-branch 可以將提交歷史記錄形象地表現出來。在使用這些工具時,時間抽通常是自下向上。

使用 gitk 來檢視提交圖

$ cd new
$ gitk

gitk截圖

三、提交範圍
許多 Git 命令都允許指定提交範圍。
雙句點(..)形式就表示一個範圍。通常情況下,提交範圍用來檢查某個分支或分支的一部分。
當使用 git log 命令並指定 Y 提交時,實際上是要求 Git 給出 Y 提交可達的所有提交的日誌。可以通過表示式 ^X 排除可達交集中的提交 X。
結合這兩種形式,git log ^X Y 就等同於 git log X..Y。從數學上來講,也可以認為它是集合減法:用 Y 之前的所有提交減去 X 之間的所有提交且包括 X。

加入分支和合並後,範圍 topic..master 表示在 master 分支而不在 topic 分支的提交。
還有其他兩種範圍表示方法,如果省略 start 或者 end,就預設用 HEAD 代替。因此, ..end 等價於 HEAD..endstart.. 等價於 start..HEAD。

只有形如 start ..end 的範圍才表示集合的減法運算,而 A…B (三個句點)表示 A 和 B 之間的對稱差,也就是 A 或 B 可達 但又不是 A 和 B 同時可達的提交集合。

相關推薦

Git 提交歷史記錄

一、檢視舊提交 在引數形式上,git log 和 git log HEAD 是一樣的,輸出每一個可以從 HEAD 找到的歷史記錄中的提交日誌訊息。注意當回溯歷史記錄的時候,Git 是依附於提交圖的,而不是時間。 限制歷史記錄的一種技術是使用 since..u

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提交歷史記錄,怎麼辦? 1.檢視提交歷史 語法:git log commit d521dd00f9b8cc3e54064abb3d8125d88e

git修改歷史記錄

-- mit 修改 inter bsp tro 編輯 rac div 1.git stash2.git rebase 45c2d5c --interactive 3.git stash pop4.git add5.git commit --amend 確認編輯後

git清理歷史記錄中的大檔案

檢視哪些歷史提交過檔案佔用空間較大 使用以下命令可以檢視佔用空間最多的五個檔案: git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3

三種清除Git提交歷史的方法

在專案實際開發過程中,可能由於工作的原因,上傳了一些敏感資訊,例如測試的賬戶名與密碼,但是後續的工作有需要將專案公開,為了避免資訊洩露,那麼必須清除Git的提交歷史記錄,經過測試,大致可以採用如下三種方法。 在這裡再次強調一次,現在有很多工具與方法從git的提

Git 查看提交歷史

gitGit 查看提交歷史在使用 Git 提交了若幹更新之後,又或者克隆了某個項目,想回顧下提交歷史,我們可以使用 git log 命令查看。針對我們前一章節的操作,使用 git log 命令列出歷史提交記錄如下:$ git log commit 88afe0e02adcdfea6844bb627de97da

g4e基礎篇#6 了解Git歷史記錄

ron 表示 git merge none 這一 如果 代碼 工具 lin 章節目錄 前言 1. 基礎篇: 為什麽要使用版本控制系統 Git 分布式版本控制系統的優勢 Git 安裝和設置 了解Git存儲庫(Repo) 起步 1 – 創建分支和保

iOS - Git 查看提交歷史(分布式版本控制系統)

使用 默認 name first reset grep tac relative let 1、查看提交歷史 在提交了若幹更新,又或者克隆了某個項目之後,你也許想回顧下提交歷史。完成這個任務最簡單而又有效的工具是 git log 命令。 $ git log commit c

git 使用詳解(5)—— get log 查看提交歷史

校驗和 看到了 有一個 基本 detached pack 有意思 lin mls git log 查看 提交歷史 在提交了若幹更新之後,又或者克隆了某個項目,想回顧下提交歷史,可以使用 git log 命令查看。 接下來的例子會用我專門用於演示的 simplegit 項目,

怎樣快速找到某一行程式碼的git提交記錄

利用notepad++提高問題分析效率,以及快速找到某一行程式碼的git提交記錄 1. 全目錄搜尋/替換         Notepad++是一款強大的文字編輯工具,當知道大概的關鍵詞但不知道在哪個日誌時可以使用notepad++的檔案搜尋功能,在整個目錄

怎樣以及為什麼要保持你的 Git 提交記錄的整潔

Git 提交記錄很容易變得混亂不堪,現在教你怎麼保持整潔! 提交功能是 Git 倉庫的關鍵部分之一,不僅如此,提交資訊也是倉庫的生命日誌。專案或者倉庫在隨著時間的推移不斷演變(新功能不斷加入,Bug 被不斷修復,體系架構也被重構),提交資訊成為了人們檢視倉庫所發生的變化或者怎麼發生變化的

Git - 檢視提交歷史

本文講解使用 git 等工具檢視提交歷史的幾種方式。 git log 在我理解中,實際上後面講的各種方法都是基於 git log 命令列工具,且對於程式設計師而言,命令列才是正統; 預設不用任何引數的話,git log 會按提交時間列出所有的更新,最近的更新排在最上面。每次更新都有一

Git的學習與使用(八)——Git 檢視提交歷史

Git 檢視提交歷史 在使用 Git 提交了若干更新之後,又或者克隆了某個專案,想回顧下提交歷史,我們可以使用 git log 命令檢視。 針對我們前一章節的操作,使用 git log 命令列出歷史提交記錄如下: $ git log commit 88afe0e02ad

Git倉庫完整遷移 含歷史記錄

原文地址:http://blog.csdn.net/candyguy242/article/details/45920111 如果你想從別的 Git 託管服務那裡複製一份原始碼到新的 Git 託管伺服器上的話,可以通過以下步驟來操作。 1). 從原地址克隆一份裸版本庫,比如原本託管於 Git

檢視修改的歷史記錄 git log 命令 和 返回上一次修改版本 git reset 、git reflog(五)

上一篇,已經學會了修改檔案,然後再把修改檔案提交到Git版本庫,now,再重複執行一次,修改index.html檔案如下: 然後執行新增、提交: 像這樣,你不斷對檔案進行修改,然後不斷提交修改到版本庫裡,每次修改到一定程度時,再提交;一旦你把檔案改亂了,或者誤刪了檔案,還可以從最

如何搜索 git 提交記錄

h+ cnblogs nta hit pan blog ext git log pad 如何搜索 git 提交記錄 git log -p --all -G ‘可通過正則搜索‘ # 可跨分支搜索 git branch -a --contains 8beeff00d #