我已经用命令创建了一个新的标签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 状态:你可能已经处于 分离式头部模式.
这就可以解释为什么最后一次提交的 枝 (相对于分离的HEAD中的任何提交)将不会收到标签。
该 OP jinil-cs 补充 在评论中:
如你所言。
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
创建了同样的标签,又推送了一次!
我在 2013年4月,Git 1.8.3 push
选项 --follow-tags
的建议。恶魔画家这确实会导致非推送的提交。和 新的标签,使它对远程分支 HEAD 可见。
但由于您不需要推送本地提交,所以您的解决方案仍然有效。
再次强调:用一个新的标签来检查本地的情况,仍然是了解差异的第一步。git status
来检查本地的情况,这仍然是了解本地提交和远程可见之间差异的第一步。