簡體   English   中英

發布項目時可以使用git'tag'嗎?

[英]Can I use git 'tag' when I release my project?

我有一個問題,我在一個分支中開發我的應用程序,然后在完成該工作后,將該分支合並到我的主數據庫中。 我從主人那里創建了一個標簽。

在生產環境中,我的工作區中有這個應用程序git存儲庫。 發布新版本時,是否可以進入該目錄,簽出我創建的標簽?

ps,我認為這種方式可行,但是以下讓我感到困惑。

$ git branch
* (no branch)
master

我在生產環境中找不到我正在使用的標簽,有什么辦法可以顯示我正在使用的標簽?

在生產環境中,我的工作區中有這個應用程序git存儲庫。 發布新版本時,是否可以進入該目錄, 簽出我創建的標簽

是的,沒有。

Git假設您想基於當前檢出的版本進行新工作。 標簽是不可變的(不可更改),因此您無法在標簽上進行新工作。 因此,當您這樣做時會發生什么

$ git checkout <tag>

是Git檢出上述標記的狀態 ,並為您創建匿名分支(在git文檔中稱為“ 分離的HEAD ”),從<tag>開始,您可以在其中創建新作品。

這就是為什么您在git-branch輸出中看到(no branch)的原因:

$ git branch
* (no branch)
  master

IMVHO在“ 簡化的Git概念 ”的“分離的HEAD及其所有內容”部分對IMVHO進行了很好的解釋(帶有圖表),其中git checkout v1.0操作得到了詳細說明。


我找不到在生產環境中使用的標簽,有什么辦法顯示我使用的標簽

如果您使用帶注釋/簽名的標簽(使用git tag -sgit tag -a ),則可以使用git-describe;如果使用輕量級標簽,則可以使用git describe --tags

例如你會得到

$ git describe
<tag>

如果您直接在標簽上。

您可以使用git describe --abbrev=0來顯示當前提交中的最新標記。

所以如果你有例如

tag v1.00
tag v1.01
tag v1.02
tag v2.00

並且您git checkout v1.01git describe --abbrev=0將導致:

v1.01

是的,這就是打算使用的方式。 確保推/拉標簽,因為默認情況下不是。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM