VSCode不直接显示所有Git标签,需用终端执行git tag查看本地标签,git ls-remote --tags origin查远程标签;创建标签仅限本地,推送需手动执行git push;删除标签须分别处理本地和远程;轻量与附注标签在UI中无区别,须用终端命令区分。

怎么在VSCode里一眼看到所有标签
VSCode本身不直接在UI中列出全部标签,必须依赖终端或命令面板——这是最容易被误以为“有图形界面支持”的坑。底部状态栏只显示当前分支,Git侧边栏的BRANCHES区域也不包含tags列表。
最可靠的方式是打开集成终端(Terminal → New Terminal),运行:
git tag
这条命令会按字母顺序输出所有本地标签。如果想看带注释内容的标签,加-n参数:
git tag -n
注意:git tag默认不显示远程标签;要查远程仓库已有的标签,得先git fetch --tags,再用git tag -r(但该命令实际不可靠),更稳的办法是:
-
git ls-remote --tags origin—— 直接查远程引用,含轻量/附注区分 - 输出里带
^{}后缀的是附注标签本体,没后缀的是轻量标签指针
为什么VSCode命令面板里的“Git: Create Tag”不推送标签
因为Git: Create Tag只做本地创建,和git tag v1.0.0行为一致,它不调用git push——这是设计使然,不是bug。VSCode把“创建”和“发布”拆成两个独立动作,避免误推测试标签到远程。
你必须手动推送,否则团队其他人根本看不到这个标签。常见错误包括:
- 创建完就以为完成了,没执行推送命令
- 用了
git push origin --tags却忘了加--tags,导致只推了分支 - 推送时拼错标签名,比如
v1.0vsv1.0.0,远程会静默失败(无报错但没新增)
确认是否成功:在GitHub/GitLab页面刷新releases或tags页,或在另一台机器上git fetch --tags && git tag验证。
删标签时本地和远程必须分开操作
删除标签不是“右键→删除”就能同步清除的。VSCode Git侧边栏里右键删标签,只删本地;远程标签完全不受影响——这会导致本地git tag看不到,但别人git fetch --tags后仍能拉下来。
Git post-commit 钩子 + SQLite 提交索引工具。自动将每次提交的元数据(哈希值、作者、分支、仓库、主题)记录到本地 SQLite 数据库中,随后提供一个命令行接口(CLI),支持查询、列表展示、统计、删除和更新记录。 触发场景:管理 Git 钩子、跨仓库查询提交历史、定位某次提交所属的仓库、查看提交统计信息、将提交记录写入本地索引。 当用户提及“提交日志记录”、“提交索引”、“跨仓库查找提交”、“Git 钩子管理”,或希望以结构化方式查询其提交历史时(即使未明确指出该工具),请使
正确清理流程是两步缺一不可:
- 删本地:
git tag -d v1.0.0 - 删远程:
git push origin --delete v1.0.0(注意不是-d,也不是git tag -d加远程名)
如果已经删了本地又忘了删远程,别人git pull不会自动删掉他们本地的旧标签;他们得自己跑git tag -d v1.0.0,或者用git fetch --prune --tags(但该命令只对origin/tags/*引用生效,不一定清干净)。
轻量标签和附注标签在VSCode里看起来完全一样
VSCode的Git: Create Tag命令不区分类型,默认创建轻量标签;只有你在终端用git tag -a才生成附注标签。但两者在VSCode UI里都只显示为一个名字,没有任何视觉提示。
这意味着:你可能以为自己打了正式发布标签,结果只是个轻量指针,没有作者、时间、签名,也无法被git verify-tag校验。
判断方法只有终端查:
-
git show v1.0.0—— 附注标签会输出完整元数据;轻量标签只显示提交内容 -
git cat-file -t v1.0.0—— 返回tag是附注,返回commit是轻量
语义化版本(如v1.0.0)必须用附注标签,这是协作底线。别图省事用GUI点一下完事。










