1. 程式人生 > >【Git 教程(7)】 Git檢視提交歷史、Git標籤

【Git 教程(7)】 Git檢視提交歷史、Git標籤

Git 檢視提交歷史

在使用 Git 提交了若干更新之後,又或者克隆了某個專案,想回顧下提交歷史,我們可以使用 git log 命令檢視。

針對我們前一章節的操作,使用 git log 命令列出歷史提交記錄如下:

$ git log
commit 88afe0e02adcdfea6844bb627de97da21eb10af1Merge:14b4dca d7e7346
Author: w3cschool <[email protected].cc>Date:SunMar115:03:422015+0800Merge branch 'change_site'Conflicts:
        test
.txt commit 14b4dcadbdc847207651d5a9fae0d315057f346eAuthor: w3cschool <[email protected].cc>Date:SunMar114:53:152015+0800新增加一行 commit d7e734640da06055e107eaf29cf350b3f1de1c2c Author: w3cschool <[email protected].cc>Date:SunMar114:48:572015+0800 changed the site commit 556f0a0637978097b82287ac665a717623b21f3f
Author: w3cschool <[email protected].cc>Date:SunMar114:40:342015+0800 removed test2.txt

我們可以用 --oneline 選項來檢視歷史記錄的簡潔的版本。

$ git log --oneline
88afe0eMerge branch 'change_site'14b4dca新增加一行
d7e7346 changed the site
556f0a0 removed test2.txt
2e082b7 add test2.txt
048598f add test.txt
85fc7e7 test comment 
from w3cschool.cc

這告訴我們的是,此專案的開發歷史。

我們還可以用 --graph 選項,檢視歷史中什麼時候出現了分支、合併。以下為相同的命令,開啟了拓撲圖選項:

$ git log --oneline --graph
*88afe0eMerge branch 'change_site'|\  
|* d7e7346 changed the site
*|14b4dca新增加一行|/*556f0a0 removed test2.txt
*2e082b7 add test2.txt
*048598f add test.txt
*85fc7e7 test comment from w3cschool.cc

現在我們可以更清楚明瞭地看到何時工作分叉、又何時歸併。

你也可以用 '--reverse'引數來逆向顯示所有日誌。

$ git log --reverse --oneline
85fc7e7 test comment from w3cschool.cc
048598f add test.txt
2e082b7 add test2.txt
556f0a0 removed test2.txt
d7e7346 changed the site
14b4dca新增加一行88afe0eMerge branch 'change_site'

如果只想查詢指定使用者的提交日誌可以使用命令:git log --author , 例如,比方說我們要找 Git 原始碼中 Linus 提交的部分:

$ git log --author=Linus--oneline -581b50f3Move'builtin-*'into a 'builtin/' subdirectory
3bb7256 make "index-pack" a built-in377d027 make "git pack-redundant" a built-in
b532581 make "git unpack-file" a built-in112dd51 make "mktag" a built-in

如果你要指定日期,可以執行幾個選項:--since 和 --before,但是你也可以用 --until 和 --after。

例如,如果我要看 Git 專案中三週前且在四月十八日之後的所有提交,我可以執行這個(我還用了 --no-merges 選項以隱藏合併提交):

$ git log --oneline --before={3.weeks.ago}--after={2010-04-18}--no-merges
5469e2dGit1.7.1-rc2
d43427d Documentation/remote-helpers:Fix typos and improve language
272a36bFixup:Second argument may be any arbitrary string
b6c8d2d Documentation/remote-helpers:Add invocation section
5ce4f4eDocumentation/urls:Rewrite to accomodate transport::address
00b84e9Documentation/remote-helpers:Rewrite description
03aa87eDocumentation:Describe other situations where-z affects git diff
77bc694 rebase-interactive: silence warning whenno commits rewritten
636db2c t3301: add tests to use--format="%N"

Git 標籤

如果你達到一個重要的階段,並希望永遠記住那個特別的提交快照,你可以使用 git tag 給它打上標籤。

比如說,我們想為我們的 w3cschoolcc 專案釋出一個"1.0"版本。 我們可以用 git tag -a v1.0 命令給最新一次提交打上(HEAD)"v1.0"的標籤。

-a 選項意為"建立一個帶註解的標籤"。 不用 -a 選項也可以執行的,但它不會記錄這標籤是啥時候打的,誰打的,也不會讓你添加個標籤的註解。 我推薦一直建立帶註解的標籤。

$ git tag -a v1.0 

當你執行 git tag -a 命令時,Git 會開啟你的編輯器,讓你寫一句標籤註解,就像你給提交寫註解一樣。

現在,注意當我們執行 git log --decorate 時,我們可以看到我們的標籤了:

$ git log --oneline --decorate --graph
*   88afe0e (HEAD, tag: v1.0, master) Merge branch 'change_site'
|\  
| * d7e7346 (change_site) changed the site
* | 14b4dca 新增加一行
|/  
* 556f0a0 removed test2.txt
* 2e082b7 add test2.txt
* 048598f add test.txt
* 85fc7e7 test comment from w3cschool.cc

如果我們忘了給某個提交打標籤,又將它釋出了,我們可以給它追加標籤。

例如,假設我們釋出了提交 85fc7e7(上面例項最後一行),但是那時候忘了給它打標籤。 我們現在也可以:

$ git tag -a v0.9 85fc7e7
$ git log --oneline --decorate --graph
*   88afe0e (HEAD, tag: v1.0, master) Merge branch 'change_site'
|\  
| * d7e7346 (change_site) changed the site
* | 14b4dca 新增加一行
|/  
* 556f0a0 removed test2.txt
* 2e082b7 add test2.txt
* 048598f add test.txt
* 85fc7e7 (tag: v0.9) test comment from w3cschool.cc

如果我們要檢視所有標籤可以使用以下命令:

$ git tag
v0.9
v1.0

指定標籤資訊命令:

git tag -a <tagname> -m "w3cschool.cc標籤"

PGP簽名標籤命令:

git tag -s <tagname> -m "w3cschool.cc標籤"

相關推薦

Git 教程7 Git檢視提交歷史Git標籤

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

Java+Selenium7---- 元素定位之詳細解析

    上篇文章介紹到了元素定位以及元素定位的八種方法,本篇詳細介紹這八種元素定位的使用方法。1. id 定位     name 如果把頁面上看元素看作一個人的話,如果我們想找一個人如何去找,那麼這個人一定有其別於其它人的“屬性”,如他的身份證號一定和別人不一樣,他的名字和別

Git檢視提交歷史Git標籤

1、克隆遠端指定分支的程式碼倉庫到本地指定目錄 git clone -b lfFranceTelecomDemo [email protected]:T5/grasper.git grasper-lfFranceTelecomDemo 其中,-b引數用於指定 分

Git 教程:時光穿梭

rac call 替換 img posit key 誤刪 ranch 定位在 我們已經成功地添加並提交了一個readme.txt文件,現在,是時候繼續工作了,於是,我們繼續修改readme.txt文件,改成如下內容: Git is a distributed version

Git 教程:倉庫與分支

ide 不但 clas version span 右上角 director discard pre 遠程倉庫 到目前為止,我們已經掌握了如何在Git倉庫裏對一個文件進行時光穿梭,你再也不用擔心文件備份或者丟失的問題了。 可是有用過集中式版本控制系統SVN的童鞋會站出來說,這

Java大資料培訓視訊全套教程-Git教程34-馬克-專題視訊課程

Java大資料培訓視訊全套教程-Git教程(34)—6人已學習 課程介紹         Java大資料系列視訊課程:"java大資料培訓學校全套教材"系列課程由750集視訊構成,基本就 是1)時下流行

git教程

一.把檔案新增在版本庫中 (1)現在要把編寫一個readme.txt檔案,其內容是:learn git today (2)在專案目錄下(子目錄也行),執行命令  $ git add readme.txt      (執行上面的命令,沒有任何顯示,這

git教程

目的:為了防止原生代碼遺失及便於版本升級,所以想著得把本地原始碼存在遠端倉庫,經過同事推薦最終採用國產碼雲gitee作為程式碼託管平臺。PS: CVS及SVN都是集中式的版本控制系統,而Git是分散式版本控制系統 ,二者區別就不細說。(以下先說完整步驟,再描述下其中的坑) 1.在W

程式設計師眼中的統計學7正態分佈的運用:正態之美

作者 白寧超 2015年10月15日18:30:07 摘要:程式設計師眼中的統計學系列是作者和團隊共同學習筆記的整理。首先提到統計學,很多人認為是經濟學或者數學的專利,與計算機並沒有交集。誠然在傳統學科中,其在以上學科發揮作用很大。然而隨著科學技術的發展和機器智慧的普及,統計學在機器智慧中的作用越來

Git教程-如何上傳和同步自己的git專案

Git接觸並使用多年, 工作中使用較多,它的分散式儲存,使每個人的電腦均為伺服器的策略非常棒;再加上使用Rsa加密,使得專案可以被自己管理,大眾任意提交Pr進行完善,最後自己合併分支,使得Git成為當今

E哥的Git教程公司程式碼提交流程

公司程式碼提交流程 “這回我心裡有底了,只要掌握了git的這些命令,工作的效率很快能趕上來!” 看著李靖信心滿滿,躍躍欲試的樣子,E哥微笑道:“先別高興得太早,我們現在來個複雜的,也是最重要的實戰演練把。 這次你要完全按照公司的開發流程來模擬一遍。”

手把手git教程05--遠端倉庫推送和克隆

如何新增遠端庫?          現在的情景是:我們已經在本地建立了一個Git倉庫後,又想在github建立一個Git倉庫,並且希望這兩個倉庫進行遠端同步,這樣github的倉庫可以作為備份,又可以其他人通過該倉庫來協作。    首先,登入github上,然後在右上角找

NodeJS開發日記7——JS本地儲存資料的幾種方法

【轉自https://blog.csdn.net/darrenzzb66/article/details/73012577】1.Cookie 這個恐怕是最常見也是用得最多的技術了,也是比較古老的技術了。COOKIE優點很多,使用起來很方便 但它的缺點也很多: 比如跨域訪問問題

手把手git教程09--多人協作,推送分支,抓取分支

多人協作 當你從遠端庫克隆時候,實際上Git自動把本地的master分支和遠端的master分支對應起來了,並且遠端庫的預設名稱是origin。 要檢視遠端庫的資訊 使用 git remote 要檢視遠端庫的詳細資訊 使用 git remote –v 如下演示: ori

nodejs原理&原始碼賞析7Node.js中的事件迴圈,定時器和process.nextTick

目錄 Event Loop 是什麼? Event Loop 基本解釋 事件迴圈階段概覽 事件迴圈細節 timers pending callbacks poll

Jenkins教程新增憑據與流水線拉取Git程式碼

前言 本文旨在配置憑據、使用Git倉庫中的Jenkinsfile與使用宣告式流水線拉取Git程式碼 使用SVN等其他版本控制工具,請參考使用Pipeline-Syntax生成對應程式碼塊 憑據(credentials)是什麼 憑據(credentials)是訪問其他系統的認證資訊,可以是賬號/密碼、SSH

Zabbix實戰-簡易教程7--監控第一臺host

頁簽 1.2 wget mage .sh 根據 支持 紅色 hosts 一、安裝 agent 1.1 Agent分布 1.2 Agent安裝 基礎模板安裝方法: wget -qO- http://zbxinstall.188.com:10086/base/agent-

Windows上安裝配置SSH教程7——幾種方式對比

由於 客戶端 方案 body open ins 下使用 上傳下載 直接 服務端:Windows XP 客戶端:Windows 10 由於Cygwin也可以安裝OpenSSH,所以客戶端其實可以直接使用Cygwin安裝OpenSSH,那麽在Windows下使用SCP(安全拷貝

讀書筆記高效程序員的45個習慣

post 任務 完成 現在 貴的 行業 過程 機會 指導 本周閱讀了《高效程序員的45個習慣》(或稱為《敏捷代碼修煉之道》)。本書著重講解了代碼開發,尤其是在團隊作業的過程中需要註意的問題,感覺對我目前正在進行的結對編程還有團隊大作業都有很好的指導意義。 本書強調的第一個觀

讀書筆記程序員的職業素養

ase 一個 時間 存在 也會 專註 的人 編寫 讓我 程序員的職業素養原名“The Clean Coder”,單看書名可能以為這是一本講解怎樣編寫簡潔代碼的技術書籍,實則不然。相比之下,中文譯名要更貼近主題一些,這本書是編程大師Bob大叔40余年編程生涯的心得體會, 他以