git stash 与 tag
约 552 字大约 2 分钟
布欧-Lewyon
2026-05-15
首页 › Git › 高级操作(在新窗口打开) › git stash 与 tag
git stash
临时保存工作区的修改,让工作区恢复干净,稍后再取回。
# 保存当前修改
git stash
# 查看所有 stash
git stash list
# stash@{0}: WIP on main: a1b2c3d fix typo
# stash@{1}: WIP on feature: d4e5f6f add feature
# 取出最近一次 stash(并删除)
git stash pop
# 取出 stash 但不删除
git stash apply
# 取出指定 stash
git stash apply stash@{1}
# 删除指定 stash
git stash drop stash@{1}
# 清空所有 stash
git stash clearstash 进阶
# 包含未跟踪的文件
git stash -u
git stash --include-untracked
# 为 stash 添加描述
git stash push -m "half-done login feature"
# 从 stash 中创建分支(解决冲突后适用)
git stash branch new-branch stash@{0}典型场景:
# 正在修改 A 功能,突然需要切换到其他分支修 Bug
git stash -m "WIP: login form"
git switch main
# 修 Bug...
git switch feature
git stash popgit tag
标签用于标记重要的历史节点(版本发布、里程碑)。
# 列出标签
git tag
git tag -l "v1.*"
# 创建轻量标签
git tag v1.0
# 创建附注标签(推荐,包含元信息)
git tag -a v1.0 -m "Release version 1.0"
# 为历史提交打标签
git tag -a v0.9 a1b2c3d -m "Pre-release version 0.9"
# 查看标签详情
git show v1.0
# 删除本地标签
git tag -d v1.0
# 推送标签到远程
git push origin v1.0
git push --tags origin
# 删除远程标签
git push origin --delete v1.0标签 vs 分支
| 对比 | 标签 | 分支 |
|---|---|---|
| 可变性 | 不可变(指向固定提交) | 随新提交移动 |
| 用途 | 标记版本 | 开发新功能 |
| 删除 | 可删除 | 可删除 |
检出标签
# 检出标签对应代码(分离 HEAD 状态)
git checkout v1.0
# 从标签创建修复分支
git checkout -b hotfix-v1.0 v1.0小结
git stash临时保存工作区修改:save→pop/apply→drop。git stash -u包含未跟踪文件,-m添加描述。git stash branch从 stash 创建新分支(解决冲突场景)。- 附注标签
git tag -a v1.0 -m "message"包含作者和日期信息。 - 标签默认不会推送到远程,需要
git push --tags。
