繼續看看git文件學習下,今天看得是git log 以及其分支:
$ git log 會按提交時間列出所有的更新,最近的更新排在最上面。
$ git log -p -2
後面加命令 -p顯示每次的內容差異,-2標識顯示最近兩次的。
後面加--stat
選項在每次提交的下面列出額所有被修改過的檔案、有多少檔案被修改了以及被修改過的檔案的哪些行被移除或是新增了。 在每次提交的最後還有乙個總結。
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(後跟指定格式)。
後面加 --pretty 指定使用不同於預設格式的方式展示提交歷史。比如:
$ git log --pretty=oneline
另外還有short
,full
和fuller
可以用。
自定義的,定製要顯示的記錄格式:
$ git log --pretty=format:"%h - %an, %ar : %s"
輸出:
ca82a6d - scott chacon, 6 years ago : changed the version number
085bb3b - scott chacon, 6 years ago : removed unnecessary test
a11bef0 - scott chacon, 6 years ago : first commit
git log --pretty=format
常用的選項: 選項
說明%h
提交物件(commit)的完整雜湊字串
%h
提交物件的簡短雜湊字串
%t
樹物件(tree)的完整雜湊字串
%t
樹物件的簡短雜湊字串
%p
父物件(parent)的完整雜湊字串
%p
父物件的簡短雜湊字串
%an
作者(author)的名字
%ae
作者的電子郵件位址
%ad
作者修訂日期(可以用 --date= 選項定製格式)
%ar
作者修訂日期,按多久以前的方式顯示
%cn
提交者(committer)的名字
%ce
提交者的電子郵件位址
%cd
提交日期
%cr
提交日期,按多久以前的方式顯示
%s
提交說明
$ git log --since=2.weeks
表示顯示最近兩周內的提交記錄。
--author
選項顯示指定作者的提交
--grep
選項搜尋提交說明中的關鍵字
如果要得到同時滿足這兩個選項搜尋條件的提交,就必須用 --all-match
選項。否則,滿足任意乙個條件的提交都會被匹配出來
-s
,可以列出那些新增或移除了某些字串的提交
最後乙個很實用的 git log
選項是路徑(path), 如果只關心某些檔案或者目錄的歷史提交,可以在 git log 選項的最後指定它們的路徑。 因為是放在最後位置上的選項,所以用兩個短劃線(--)隔開之前的選項和後面限定的路徑名。
限制git log
輸出的選項選項說明
-(n)
僅顯示最近的 n 條提交
--since
,--after
僅顯示指定時間之後的提交。
--until
,--before
僅顯示指定時間之前的提交。
--author
僅顯示指定作者相關的提交。
--committer
僅顯示指定提交者相關的提交。
--grep
僅顯示含指定關鍵字的提交
-s
僅顯示新增或移除了某個關鍵字的提交
如果要檢視 git 倉庫中,2008 年 10 月期間,junio hamano 提交的但未合併的測試檔案,可以用下面的查詢命令:
$ git log --pretty="%h - %s" --author=gitster --since="2008-10-01" \
--before="2008-11-01" --no-merges -- t/
Git 學習筆記整理
git是什麼?git是乙個免費的開源分布式版本控制系統,旨在快速,高效地處理從小型到大型專案的所有事務。集中式與分布式的區別 git幾個特性 三種狀態 git有三種狀態 已提交 資料已經儲存在本地倉庫中 已修改 已修改檔案,但是還未儲存到倉庫中 已暫存 對乙個已修改檔案的當前版本做了標記,使之包含在...
學習筆記整理 Git
開源 分布式 版本控制工具 svn為集中式 分為 本地倉庫與遠端倉庫 團隊協同開發專案 工作目錄working tree 暫存區 index 本地倉庫repository 暫存區 遠端倉庫remote repository 工具 tortoisegit idea smartgit sourcetre...
整理 linux學習筆記(4)
初始化程序,linux5,6使用的是init命令,到linux7則使用的是systemd,但它不僅僅是做初始化程序,它還接管了service chkconfig等配置任務 systemctl start 服務名稱 啟動服務 systemctl restart 服務名稱 重啟服務 systemctl ...