【问题标题】:Pushed tag is not coming up on BitbucketBitbucket 上没有出现推送的标签
【发布时间】:2020-05-06 05:16:16
【问题描述】:

我用命令创建了一个新标签 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 bitbucket


    【解决方案1】:

    设置标签后检查你的 git 状态:你可能在 detached HEAD mode 中。

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


    OP jinil-cs 加上in the comments

    按照你的建议,git status 向我展示了

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

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

    我做了git reset --hard origin/master,因为我不需要本地更改。

    好的,这有点危险,因为其他人可能会使他们的最后一次提交不可见(git reflog 中仍然存在),但在你的情况下,这会起作用。

    然后我删除了远程和本地标签。

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

    创建了相同的标签并再次推送!


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

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

    再次重申:git status 在本地检查情况仍然是了解本地操作与远程可见之间差异的良好第一步。

    【讨论】:

    • 正如你所建议的,git status 向我展示了Your branch is ahead of 'origin/master' by 2 commits. 我做了git reset --hard origin/master,因为我不需要我的本地更改。然后我删除了远程和本地标签。 git push --delete origin v1.0git tag -d v1.0创建了相同的标签并再次推送!
    • @jinilcs 太好了,干得好!我已将您的评论包含在答案中以提高知名度,并添加了一些其他信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-14
    • 2015-09-13
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多