如何使用 Git 将标签推送到远程存储库?

发布于 2024-10-20 11:42:00 字数 219 浏览 1 评论 0原文

我在我的机器上的 master 分支上添加了一个标签:

git tag mytag master

How do I Push this to the Remote Repository?运行 git push 会显示以下消息:

一切都是最新的

但是,远程存储库不包含我的标签。

I added a tag to the master branch on my machine:

git tag mytag master

How do I push this to the remote repository? Running git push gives the message:

Everything up-to-date

However, the remote repository does not contain my tag.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(13

如果没有你 2024-10-27 11:42:00

推送单个标签:

git push origin tag <tag_name>

以下命令应推送所有标签(不推荐):

# not recommended
git push --tags

To push a single tag:

git push origin tag <tag_name>

And the following command should push all tags (not recommended):

# not recommended
git push --tags
鹤仙姿 2024-10-27 11:42:00

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] 部分。

Visual Studio Code

要在 Visual Studio Code 中激活此功能,请在用户或工作区的基础上设置变量 "git.followTagsWhenSync": trueGitHub

git push --follow-tags

This is a sane option introduced in Git 1.8.3:

git push --follow-tags

It pushes both commits and only tags that are both:

  • annotated
  • reachable (an ancestor) from the pushed commits

This is sane because:

It is for those reasons that --tags should be avoided.

Git 2.4 has added the push.followTags option to turn that flag on by default which you can set with:

git config --global push.followTags true

or by adding followTags = true to the [push] section of your ~/.gitconfig file.

Visual Studio Code

To activate this in Visual Studio Code set the variable "git.followTagsWhenSync": true on a user or workspace basis. GitHub

莫多说 2024-10-27 11:42:00

要推送特定内容,一个标签执行以下操作
git Push origin tag_name

To push specific, one tag do following
git push origin tag_name

吲‖鸣 2024-10-27 11:42:00

要扩展 Trevor 的答案,您可以推送单个标签或所有标签
立即标记。

推送单个标签

git push <remote> <tag>

这是相关文档的摘要< /a> 解释了这一点(一些
为简洁起见,省略命令选项):

git Push [[<存储库>> [<参考规格>...]]

<参考规格>...

参数的格式是…源引用
后跟冒号 :,后跟目标引用 ...

告诉远程端的哪个引用已更新
push…如果省略 : ,则将使用与 相同的引用
已更新...

tag refs/tags/:refs/tags/ 含义相同。

一次推送所有标签

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

这是 的摘要相关文档(一些命令选项
为简洁起见省略):

git Push [--全部 | --镜子| --tags] [<存储库> [<参考规格>...]]

--标签

除了明确的 refspec 之外,refs/tags 下的所有引用都会被推送
在命令行上列出。

To expand on Trevor's answer, you can push a single tag or all of your
tags at once.

Push a Single Tag

git push <remote> <tag>

This is a summary of the relevant documentation that explains this (some
command options omitted for brevity):

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

<refspec>...

The format of a <refspec> parameter is…the source ref <src>,
followed by a colon :, followed by the destination ref <dst>

The <dst> tells which ref on the remote side is updated with this
push…If :<dst> is omitted, the same ref as <src> will be
updated…

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

Push All of Your Tags at Once

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

Here is a summary of the relevant documentation (some command options
omitted for brevity):

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

--tags

All refs under refs/tags are pushed, in addition to refspecs explicitly
listed on the command line.

甲如呢乙后呢 2024-10-27 11:42:00

在当前分支中添加标签。如果您想为您的 master 创建标签,请首先签出 master。

git tag tag_name

检查它是否已创建

git tag

推送到您的远程源

git push origin tag_name

Add a tag in your current branch. If you want to create the tag for your master, first check out to master.

git tag tag_name

Check if it's created or not

git tag

Push in your remote origin

git push origin tag_name
ぃ弥猫深巷。 2024-10-27 11:42:00

您可以通过简单的 git push --tags 命令推送所有本地标签。

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

You can push all local tags by simply git push --tags command.

$ git tag                         # see tag lists
$ git push origin <tag-name>      # push a single tag
$ git push --tags                 # push all local tags 
何以笙箫默 2024-10-27 11:42:00

标签不会通过 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

Tags are not sent to the remote repository by the git push command. We need to explicitly send these tags to the remote server by using the following command:

git push origin <tagname>

We can push all the tags at once by using the below command:

git push origin --tags

Here are some resources for complete details on git tagging:

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

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

静若繁花 2024-10-27 11:42:00

您可以像这样推送标签git push --tags

You can push the tags like this git push --tags

满地尘埃落定 2024-10-27 11:42:00

如何将我的标签推送到远程存储库以便所有客户端计算机都可以看到它?

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

git push origin refs/tags/mytag

最好使用如上所示的完整“refspec”(字面意思 refs/tags/mytag)以防万一 mytag 实际上是 v1.0.0 并且不明确(例如:因为有一个分支也名为 v1.0.0)。

How can I push my tag to the remote repository so that all client computers can see it?

Run this to push mytag to your git origin (eg: GitHub or GitLab)

git push origin refs/tags/mytag

It's better to use the full "refspec" as shown above (literally refs/tags/mytag) just in-case mytag is actually v1.0.0 and is ambiguous (eg: because there's a branch also named v1.0.0).

情感失落者 2024-10-27 11:42:00

我正在使用 git pushtag以确保我正在推送标签。我使用它的方式如下:git push origin tag v1.0.1。此模式基于文档 (man git-push):

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

I am using git push <remote-name> tag <tag-name> to ensure that I am pushing a tag. I use it like: git push origin tag v1.0.1. This pattern is based upon the documentation (man git-push):

OPTIONS
   ...
   <refspec>...
       ...
       tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>.
停顿的约定 2024-10-27 11:42:00

将标签推送到远程

git push origin mytag

从远程获取所有标签

git fetch --all --tags

push tag to remote

git push origin mytag

fetch all tags from remote

git fetch --all --tags
心房敞 2024-10-27 11:42:00

我做了这样的事情:

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

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

I did something like this :

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

e.g. : git push --tags origin master v2.0
月下客 2024-10-27 11:42:00

就我而言,我使用的是 Git 版本 2.30.0 我尝试了 --follow-tags--tags,但它们都没有无法将所有标签推送到远程存储库。我最终使用:

+refs/remotes/origin/tags/*:refs/tags/*

因此,对于那些正在寻找一种将所有标签(连同主标签)推送到远程存储库的人,您只需添加以下+refs/remotes/ origin/tags/*:refs/tags/* 到您的 push 命令。

所以你的命令应该是这样的:

git push path/to/your/repo +refs/remotes/origin/tags/*:refs/tags/*

它将成功地在远程存储库中创建所有标签。

In my case I am using Git version 2.30.0 I tried both --follow-tags and --tags, but both of them didn't work to push all the tags to the remote repo. I ended up using:

+refs/remotes/origin/tags/*:refs/tags/*

So for those who are looking for a way to push all the tags (along with master) to a remote repo, you can just add the following +refs/remotes/origin/tags/*:refs/tags/* to your push command.

So your command should be something like this:

git push path/to/your/repo +refs/remotes/origin/tags/*:refs/tags/*

It will successfully create all your tags in the remote repo.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文