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


一、概述:

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


二、創建標簽

可以通過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代碼庫中,打開代碼庫的歷史記錄,右鍵點擊一個提交后,新建標記

image

Figure - 輸入標記的名稱和說明后,就點擊創建按鈕


3. 在命令行中創建標簽

在命令行中,使用“Git tag –a tagname –m “comment”可以快速創建一個標簽。需要注意,命令行創建的標簽只存在本地Git庫中,還需要使用Git push –tags指令發布到TFS服務器的Git庫中。

image

4. 為一個特定的提交創建標簽

上面的目錄都是基於最新的代碼(HEAD)創建標簽,實際上經常還需要在變更歷史記錄中,為之前提交的代碼創建標簽。

我們可以在標簽的名稱后面填寫提交編號既可以,例如git tag –a tagname commitID –m “comments”,如下圖:

image

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

如果你發現上面創建的標簽名稱不合適,你也可以在命令行中使用-f參數復制一個新的標簽,再使用-d參數刪除原來的標簽,從而達到修改標簽的目的,如下圖:

image


二、標簽同步

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 張洪君)

三、刪除標簽

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

image

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

注意,標簽的操作需要區分大小寫,否則可能出錯。

image

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

image

四、按照標簽獲取代碼

git checkout tagName

image

五、標簽和分支的區別

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

概論上來講:

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

技術上來講:

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

應用場景上來講:

  • 標簽經常用來標記軟件版本的名稱。例如當我們發布軟件版本V1.0時,我們會在對應的分支中為當前最新的代碼創建一個名稱為“V1.0”的標簽。在一個分支中,隨着軟件發布工作的推進,通常存在許多的記錄了不同版本名稱的標簽。使用標簽,開發人員可以快速簽出需要的代碼,用來重新問題、調試缺陷。
  • 分支通常在多個團隊、多條功能/需求同步開發的情況下使用。開發團隊基於一個初始版本(例如master)創建自己的開發分支(例如dev),在開發分支中簽入自己的代碼,避免影響其他團隊的代碼,避免修改master中國已經趨向穩定的軟件代碼;當開發團隊在自己的分支中完成了新的軟件功能后,將修改后的代碼合並到主干分支中,與其他團隊實現集成測試。

通過靈活運用標簽和分支的功能,即便軟件系統多么復雜、團隊成員眾多、需求頻繁變更,我們也可以將軟件系統的代碼結構整理得條理有序,時刻保持清晰的思路,減少發布過程中的風險和問題。

六、其他常見操作

1. Git tag:顯示所有標簽

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

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


--End--


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM