推送的标签不会出现在 Bitbucket 上

Pushed tag is not coming up on Bitbucket

我用命令创建了一个新标签 git tag -a v1.0 -m "Production Release".

并通过 git push origin v1.0

将标签推送到远程

成功了,我得到了下面的回复。

Counting objects: 3, done.
Delta compression using up to 12 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 662 bytes | 662.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://bitbucket.org/project/repo.git
 * [new tag]         v1.0 -> v1.0

但是当我浏览 Bitbucket 提交时,我仍然看不到这个标签。 它应该显示在最后一次提交的旁边。 我是否遗漏了任何步骤?

设置标签后检查您的 git 状态:您可能处于 detached HEAD mode

这可以解释为什么 分支 的最后一次提交(与分离 HEAD 中的任何提交相反)不会收到标记。


OP jinil-cs adds :

As you suggested, git status showed me

Your branch is ahead of 'origin/master' by 2 commits. 

这不是分离的 HEAD 情况,而是指向您在分支 HEAD 上看不到标签的另一个原因:您还没有推送您的分支。

I did git reset --hard origin/master since I don't need my local changes.

好的,这有点危险,因为其他人可能会隐藏他们的最后一次提交(git reflog 中仍然存在),但在您的情况下,这是可行的。

Then I deleted the remote and local tags.

git push --delete origin v1.0 
  git tag -d v1.0 

Created the same tag and pushed it again!


我在 April 2013 the Git 1.8.3 push option --follow-tags, suggested by Daemon Painter 中提到过,这确实会推送非推送提交 新标记,使其对您的远程分支 HEAD 可见。

但是由于您不需要推送本地提交,因此您的解决方案仍然有效。

再次声明:git status 在本地检查情况仍然是了解本地完成的操作与远程可见操作之间差异的良好开端。