簡體   English   中英

如何使用 Git 將標簽推送到遠程存儲庫?

[英]How do you push a tag to a remote repository using Git?

我在機器上的 master 分支上添加了一個標簽:

git tag mytag master

如何將其推送到遠程存儲庫? 運行git push給出消息:

一切都是最新的

但是,遠程存儲庫不包含我的標簽。

推送單個標簽:

git push origin <tag_name>

以下命令應該推送所有標簽(不推薦):

# not recommended
git push --tags

git push --follow-tags

這是 Git 1.8.3 中引入的一個明智的選擇:

git push --follow-tags

它推送兩個提交,並且只推送兩者的標簽:

  • 帶注釋的
  • 從推送的提交中可達(祖先)

這是理智的,因為:

正是由於這些原因,應該避免使用--tags

Git 2.4 添加push.followTags選項以默認打開該標志,您可以設置:

git config --global push.followTags true

或者通過將followTags = true添加到~/.gitconfig文件的[push]部分。

要推送特定的,一個標簽執行以下git push origin tag_name

要擴展Trevor 的答案,您可以一次推送單個標簽或所有標簽。

推送單個標簽

git push <remote> <tag>

這是解釋這一點的 相關文檔的摘要(為簡潔起見,省略了一些命令選項):

 git push [[<repository> [<refspec>…]] <refspec>...

<refspec>參數的格式是……源引用<src> ,后跟冒號: ,然后是目標引用<dst> ……

<dst>告訴遠程端的哪個 ref 被此推送更新...如果:<dst>被省略,與<src>相同的 ref 將被更新...

標簽<tag>的含義與refs/tags/<tag>:refs/tags/<tag>相同。

一次推送所有標簽

git push --tags <remote>
# Or
git push <remote> --tags

以下是 相關文檔的摘要(為簡潔起見,省略了一些命令選項):

 git push [--all | --mirror | --tags] [<repository> [<refspec>…]] --tags

除了在命令行上明確列出的 refspecs 之外,所有refs/tags下的 refs 都會被推送。

您可以通過簡單的git push --tags命令推送所有本地標簽。

$ git tag                         # see tag lists
$ git push origin <tag-name>      # push a single tag
$ git push --tags                 # push all local tags 

git push 命令不會將標簽發送到遠程存儲庫。 我們需要使用以下命令將這些標簽顯式發送到遠程服務器:

git push origin <tagname>

我們可以使用以下命令一次推送所有標簽:

git push origin --tags

以下是有關 git 標記的完整詳細信息的一些資源:

http://www.cubearticle.com/articles/more/git/git-tag

http://wptheming.com/2011/04/add-remove-github-tags

您可以像這樣推送標簽git push --tags

在當前分支中添加標簽

git tag tag_name

檢查它是否已創建

git tag

推入您的遠程來源

git push origin tag_name

如何將我的標簽推送到遠程存儲庫,以便所有客戶端計算機都可以看到它?

運行此命令將mytag推送到您的 git 源(例如:GitHub 或 GitLab)

git push origin refs/tags/mytag

最好使用上面顯示的完整“refspec”(字面意思是refs/tags/mytag ),以防mytag實際上是v1.0.0並且不明確(例如:因為有一個分支也名為v1.0.0 )。

我正在使用git push <remote-name> tag <tag-name>來確保我正在推送標簽。 我像這樣使用它: git push origin tag v1.0.1 此模式基於文檔( man git-push ):

OPTIONS
   ...
   <refspec>...
       ...
       tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>.

我做了這樣的事情:

git push --tags origin <branch-name> <tag-name>

e.g. : git push --tags origin master v2.0

也可以使用可用的工具來創建標簽。 添加了一個 Git 擴展和源代碼樹示例。

此外,如果您希望將標簽移動到遠程分支,請選擇“將標簽推送到原點”並推送您的標簽。 這將有助於其他開發人員使用或引用特定位置,當他們遲到最新的存儲庫時。

在 GitExtension/sourcetree 中打開存儲庫。

  • 選擇要添加標簽的提交。 右鍵單擊提交,您可以看到創建標簽的選項。

GIT 擴展名: GIT 擴展

來源樹: 在此處輸入圖片說明

  • 作為另一個選項,您可以從頂部菜單中選擇創建標簽。

GIT 擴展名: 在此處輸入圖片說明

來源樹: 在此處輸入圖片說明

  • 將打開此彈出窗口,根據您的要求添加標簽名稱並選擇“將標簽推送到原點”。 但首選。

GIT 擴展名: 在此處輸入圖片說明

來源樹: 在此處輸入圖片說明

暫無
暫無

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

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