VSCode中创建附注标签必须使用终端执行git tag -a v1.2.0 -m "Release stable version",因内置Git: Create Tag仅支持轻量标签;推送需手动git push origin v1.2.0或--tags,再执行Git: Fetch刷新标签视图。

VSCode 本身不提供“右键打标”菜单,也没有独立标签管理面板;创建 Git Tag 必须用 git tag 命令,或通过命令面板触发内置的 Git: Create Tag 功能——但后者仅支持轻量标签,且不带注释。
怎么在 VSCode 里快速创建附注标签(推荐用于正式发布)
VSCode 的 Git: Create Tag 命令(Ctrl+Shift+P → 输入并执行)只能创建轻量标签,无法指定 -a 或 -m。要生成 CI/CD 工具识别的附注标签,必须进终端手动执行:
-
git tag -a v1.2.0 -m "Release stable version"—— 最常用、最稳妥的方式 - 想用编辑器写长注释?先配好默认编辑器:
git config --global core.editor "code --wait",再运行git tag -a v1.2.0(不带-m),VSCode 就会弹出临时文件让你填写 - 检查是否成功:运行
git show v1.2.0,看到tagger、date、message三行才是附注标签;如果只显示提交内容,那就是轻量标签
为什么打了标签,VSCode 状态栏和 Git 视图里都看不到
不是没打成,是 VSCode 默认不拉取远程标签,也不刷新本地标签缓存。常见现象包括:
- 状态栏点击分支名,下拉列表只有
main、dev,没有tag: v1.2.0 - “Source Control”面板的提交历史旁不显示标签图标
-
git ls-remote --tags origin查不到刚推的标签 —— 其实根本没推
解决办法分两步:
|Git删除了文件,但还会在Git 仓库历史中遗留。 - 想要从 Git 历史移除敏感信息(密码、密钥、token、私钥) - 想要删除意外提交的大文件 - 想要重写 Git 历史、移除特定文件的所有痕迹 - 提到 "force push"、"重写 commit 历史" - 需要从所有分支、所有 tag 中删除某个文件
- 先确保本地标签已存在:
git tag能列出目标标签 - 再手动推送:
git push origin v1.2.0(单个)或git push origin --tags(全部) - 最后刷新 VSCode 标签视图:Ctrl+Shift+P →
Git: Fetch→ 选Fetch all tags,之后状态栏下拉才能看到tag: v1.2.0
检出 tag 后提示 detached HEAD,还能提交吗
能,但你不该这么做。检出 tag 是只读快照行为,VSCode 状态栏显示 HEAD(不是分支名)就是明确提醒你当前不在任何分支上。
- 直接改代码 + commit,会产生一个“游离提交”,后续很难被引用或合并
- 正确做法是:检出后立刻创建新分支,例如
git checkout -b hotfix-from-v1.2.0 - VSCode 命令面板里没有“基于 tag 创建分支”的快捷项,必须进终端执行
- 如果只是验证发布包是否正常,detached HEAD 完全 OK;如果要修 bug 或加功能,分支才是唯一安全路径
最容易被忽略的一点:git push 默认完全忽略所有标签,无论轻量还是附注。哪怕你在 VSCode 终端里敲了 git tag,只要没跟一句 git push origin v1.2.0 或 git push origin --tags,远程仓库就永远不知道这个标签存在。










