在TFS中使用Git Tags(標籤或標記),實現代碼的版本管理

1、概述:

與TFVC中標記(Label)同樣,Git的標籤(Tag)也是TFS系統的代碼管理中很是重要的一個版本管理工具。使用標籤,咱們能夠每一個時間點的代碼註上一個通俗、而且容易記憶的名稱(例如標籤的名稱爲V1.0,V2.0.0.0等),方便開發人員對代碼庫中的版本有一個直觀的瞭解。咱們能夠依照標籤,簽出任一時間點的代碼。下面咱們結合TFS 2018和Visual Studio 2017來驗證如何實現Git的標籤功能。git


2、建立標籤

能夠經過Visual Studio、命令行,瀏覽器等多種渠道建立標籤。

1. 在VS 2017中建立標籤

在Visul Studio的團隊資源管理器中,打開Git代碼的歷史記錄,可使用鼠標右鍵點擊任一提交,並以此爲基礎新建一個標籤,例以下圖中咱們爲最新的代碼建立一個名稱爲「V2.0」的標籤。瀏覽器

image

Figure – 在Git歷史記錄中新建標籤服務器

image

Figure - 輸入標籤的名稱和說明文字,點擊「建立標記」工具

這樣,一個名稱爲」V2.0「的標籤就已經建立在本地的代碼庫中了,你能夠經過刷新Git歷史記錄查看到新建的標籤。固然,此時標籤尚未同步到服務器上,咱們在後面會說明如何發佈標籤到服務器。測試


2. 在TFS Web Access中建立標籤

TFS系統是一個但是化程度很是高的服務器軟件,和微軟全部的其餘產品同樣,爲用戶帶來操做的便捷性。你可使用瀏覽器,很是方便和快速的直接在服務器上建立一個標籤,操做方式以下圖:命令行

image

Figure - 在TFS的Git代碼庫中,打開代碼庫的歷史記錄,右鍵點擊一個提交後,新建標記3d

image

Figure - 輸入標記的名稱和說明後,就點擊建立按鈕調試


3. 在命令行中建立標籤

在命令行中,使用「Git tag –a tagname –m 「comment」能夠快速建立一個標籤。須要注意,命令行建立的標籤只存在本地Git庫中,還須要使用Git push –tags指令發佈到TFS服務器的Git庫中。對象

image

4. 爲一個特定的提交建立標籤

上面的目錄都是基於最新的代碼(HEAD)建立標籤,實際上常常還須要在變動歷史記錄中,爲以前提交的代碼建立標籤。blog

咱們能夠在標籤的名稱後面填寫提交編號既能夠,例如git tag –a tagname commitID –m 「comments」,以下圖:

image

5. 在命令行中修改標籤名稱

若是你發現上面建立的標籤名稱不合適,你也能夠在命令行中使用-f參數複製一個新的標籤,再使用-d參數刪除原來的標籤,從而達到修改標籤的目的,以下圖:

image


2、標籤同步

1. 將本地標籤的標籤上傳的服務器

下面的命令將本地的全部標籤都提交到服務器上:

Git push –-tags

image

image

2. 提交單個標籤

下面的目錄,修改tagname之後,能夠將指定的標籤提交到服務器中:

Git push origin tagname

image


4. 將TFS中建立的標籤同步到本地

Git pull

image


參考資料:

1. https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E6%89%93%E6%A0%87%E7%AD%BE

2. http://www.cnblogs.com/danzhang (微軟ALM MVP 張洪君)

3、刪除標籤

刪除本地標籤:git –d <tag name>

image

刪除遠程庫中的標籤git push orgin :V1.1

注意,標籤的操做須要區分大小寫,不然可能出錯。

image

你也可使用瀏覽器在Web界面的可視化界面中,直接在TFS服務器上刪除標籤,以下圖:

image

4、按照標籤獲取代碼

git checkout tagName

image

5、標籤和分支的區別

標籤(tag)和分支(branch)是Git版本管理中常常容易混餚的概論,開發人員不太容易弄明白什麼樣的場景中須要對應的功能。

概論上來說:

  • 標籤一個特定版本的名稱。標籤老是指向一個相同的對象,例如提交版本。標籤指向的版本是不會被改變的。
  • 分支是代碼開發支線的名稱。新的提交按照時間線堆積在分支中,從而實現代碼庫的更新和軟件功能的變化。

技術上來說:

  • 標籤存儲在Git庫的/refs/tags目錄中。它指向一個特定的提交或標籤。
  • 分支存儲在Git庫的/refs/heads中,它只能指向到提交對象。

應用場景上來說:

  • 標籤常常用來標記軟件版本的名稱。例如當咱們發佈軟件版本V1.0時,咱們會在對應的分支中爲當前最新的代碼建立一個名稱爲「V1.0」的標籤。在一個分支中,隨着軟件發佈工做的推動,一般存在許多的記錄了不一樣版本名稱的標籤。使用標籤,開發人員能夠快速簽出須要的代碼,用來從新問題、調試缺陷。
  • 分支一般在多個團隊、多條功能/需求同步開發的狀況下使用。開發團隊基於一個初始版本(例如master)建立本身的開發分支(例如dev),在開發分支中籤入本身的代碼,避免影響其餘團隊的代碼,避免修改master中國已經趨向穩定的軟件代碼;當開發團隊在本身的分支中完成了新的軟件功能後,將修改後的代碼合併到主幹分支中,與其餘團隊實現集成測試。

經過靈活運用標籤和分支的功能,即使軟件系統多麼複雜、團隊成員衆多、需求頻繁變動,咱們也能夠將軟件系統的代碼結構整理得條理有序,時刻保持清晰的思路,減小發布過程當中的風險和問題。

6、其餘常見操做

1. Git tag:顯示全部標籤

2.Git show taname:查看標籤的詳細信息

2. Git checkout commitID:根據提交ID獲取代碼


--End--

相關文章
相關標籤/搜索