vscode中创建git标签核心是本地创建加显式推送:用git tag -a v1.2.0 -m"release version 1.2.0"创建带元数据的附注标签,再执行git push origin v1.2.0显式推送,因默认不推标签,图形界面“push”按钮亦不推送标签。

VSCode 里打 Git 标签,核心就两步:本地创建 + 显式推送;不推送,别人根本看不到你的 v1.0.0。
怎么在 VSCode 里创建带信息的标签(推荐用 git tag -a)
VSCode 自带集成终端,直接在里面运行命令最稳。附注标签(git tag -a)会生成独立 Git 对象,带作者、时间、签名能力,正式发布必须用它。
-
git tag -a v1.2.0 -m"Release version 1.2.0":基于当前 HEAD 创建,消息写进 Git 对象,可被git show v1.2.0查看完整元数据 -
git tag -a v1.1.0 abc1234 -m"Hotfix for login":指定某次提交哈希创建,适合回溯打补丁版本 - 别用
git tag v1.0.0(轻量标签)——它只是个指针,没作者、没时间、不能签名,CI/CD 工具常忽略它 - VSCode 源代码管理视图右键提交 → “Create Tag” 也能弹出对话框,但默认创建的是轻量标签,得手动输
-a参数才生效(实际不建议依赖图形操作)
为什么 git push 默认不推标签?
Git 设计上就把标签和分支分开处理:分支推送是常态,标签是“快照标记”,需显式确认。VSCode 的“Push”按钮只推分支,从不自动推任何标签,这是最容易踩的坑。
使用约定式提交(Conventional Commits)从 Git 历史记录中生成结构化变更日志,支持多种格式、AI 增强型描述以及可自定义的范围……
-
git push origin v1.2.0:只推这一个标签,安全可控,适合上线前逐个核对 -
git push origin --tags:推所有本地未推送的标签,省事但危险——如果误建了v1.2.0-rc2或test-tag,也会一起发到远程 - CI/CD 流程(如 GitHub Actions)通常监听
git push --tags触发构建,但如果你本地有残留测试标签,可能意外触发非预期发布 - 执行后可用
git ls-remote --tags origin验证是否真上去了,别只信 VSCode 状态栏
删错标签怎么办?本地和远程要同步清理
标签一旦推到远程,就进了团队协作链路。只删本地 git tag -d v1.0.1 没用,别人 git fetch --tags 还能拉下来。
- 删远程标签:
git push origin --delete v1.0.1(比git push origin :refs/tags/v1.0.1更直观,VSCode 1.80+ 原生支持) - 删完立刻同步本地:再跑一遍
git tag -d v1.0.1,否则下次--tags又会把它重推上去 - 如果别人已经 fetch 过这个标签,需通知他们手动执行
git tag -d v1.0.1 && git fetch --prune --tags - VSCode 源代码管理侧边栏显示的标签列表不会自动刷新,关掉再打开或按
Ctrl+Shift+P→ “Git: Fetch” 才能更新
真正麻烦的不是命令记不住,而是标签命名不规范、临时标签没清理、附注和轻量混用——这些都会让 CI 脚本解析失败或让 QA 不知该测哪个 v*。每次打标前花 10 秒确认 git tag -n 输出里没有乱七八糟的名字,比事后救火强得多。










