當一個代碼倉庫進過長時間的迭代,針對不一樣的時期和需求,一定會有不一樣的版本。而藉助 Git 提供的標籤功能,能夠快捷方便地記錄代碼版本。不管何時,想取回某個版本,再也不須要查找冗長的
commit_id
,只須要取出打標籤的歷史版本便可。
能夠這麼理解:標籤是版本庫的一個快照。在主流的 Git 平臺上,版本能夠直接下載的,節省了開發者的很多精力。python
下面記錄下如何藉助 標籤 進行版本管理。git
首先我在 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")
下面記錄了本地標籤操做的經常使用命令:教程
命令 | 做用 |
---|---|
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正式版本'
。開發
在本地打好標籤後,須要將標籤推送到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
這個標籤。
標籤的刪除請慎重,尤爲是刪除遠程標籤(通常來講,沒有人會這麼作)。命令以下:
命令 | 做用 |
---|---|
git tag -d <tagname> |
刪除指定標籤 |
git push origin :refs/tags/<tagname> |
刪除遠程標籤 |
版本管理能夠藉助git的tag來實現。可是,在開發過程當中,不可能每次修改都打標籤而後發佈。
實際開發中,通常會有一個dev
分支,做爲開發版本分支。在沒有完成這次開發任務前,全部的代碼都是合併到dev
分支。
當完成了開發任務,管理者會將dev
分支合併到master
分支,而後刪除dev
分支,而且經過打標籤來發布版本。
這就是爲何不少放棄維護的大型開源項目只有master
分支的緣由。