Git實戰手冊(二): 標籤應用和版本管理

0. 背景介紹

當一個代碼倉庫進過長時間的迭代,針對不一樣的時期和需求,一定會有不一樣的版本。而藉助 Git 提供的標籤功能,能夠快捷方便地記錄代碼版本。不管何時,想取回某個版本,再也不須要查找冗長的 commit_id,只須要取出打標籤的歷史版本便可。

能夠這麼理解:標籤是版本庫的一個快照。在主流的 Git 平臺上,版本能夠直接下載的,節省了開發者的很多精力。python

下面記錄下如何藉助 標籤 進行版本管理。git

1. 環境仿真

首先我在 github 上創建了一個倉庫。如你所見,這是一個全新倉庫:>>> Star nowgithub

執行git clone git@github.com:dongyuanxin/git-demos.git, 將代碼庫 clone 到本地後。spa

在根目錄下建立一個hello.v1.py文件:touch hello.v1.py。代碼以下:code

# hello.v1.py
print("This is version 1.0")

2. 本地標籤操做

下面記錄了本地標籤操做的經常使用命令:教程

命令 做用
git tag 查看全部標籤
git tag <tagname> 建立標籤:tagname
git tag -a <tagname> -m <comment> 爲標籤 tagname 增長說明 comment
git show <tagname> 查看標籤:tagname 的內容
git tag -d <tagname> 刪除標籤:tagname

其中,建立標籤tagname而且增長說明comment,能夠簡寫成:git tag <tagname> -m <comment>圖片

Now, 爲代碼庫在本地打上標籤:git tag v1.0.0 -m 'v1.0.0正式版本'開發

3. 標籤的遠程推送和拉取

在本地打好標籤後,須要將標籤推送到Git平臺(好比GitHub)上,才能留下版本快照,供別人下載使用。rem

除此以外,還有可能刪除已經發布的標籤(好比標籤命名不合規範)。get

下面記錄了遠程標籤操做的經常使用命令:

命令 做用
git push origin --tags 推送全部標籤
git push origin <tagname> 推送指定標籤

咱們首先將v1.0.0版本推送到Github:git push origin v1.0.0

而後,打開倉庫,咱們會發現releases標籤已經變成了1。

點進去,會發現咱們能夠直接下載v1.0.0版本。因此,標籤是版本的快照。

值得一提的是:標籤會隨着git clone倉庫時候,自動拉取到本地。不信的話能夠clone一下這個代碼倉庫,查看是否是已經有了v1.0.0這個標籤。

4. 標籤的刪除

標籤的刪除請慎重,尤爲是刪除遠程標籤(通常來講,沒有人會這麼作)。命令以下:

命令 做用
git tag -d <tagname> 刪除指定標籤
git push origin :refs/tags/<tagname> 刪除遠程標籤

5. 拓展閱讀

版本管理能夠藉助git的tag來實現。可是,在開發過程當中,不可能每次修改都打標籤而後發佈。

實際開發中,通常會有一個dev分支,做爲開發版本分支。在沒有完成這次開發任務前,全部的代碼都是合併到dev分支。

當完成了開發任務,管理者會將dev分支合併到master分支,而後刪除dev分支,而且經過打標籤來發布版本。

這就是爲何不少放棄維護的大型開源項目只有master分支的緣由。

相關文章
相關標籤/搜索