随机
Enter 搜索 ↑↓ 切换 Esc 清空

git-stash

命令

暂存工作区更改

git-stash

暂存工作区更改

补充说明

git stash 命令用于临时保存工作区和暂存区的更改,使工作目录回到干净状态。常用于需要临时切换分支但又不想提交未完成工作的情况。

语法

git stash [OPTIONS]
git stash pop  [--index] [<stash>]
git stash apply [--index] [<stash>]
git stash list
git stash drop [<stash>]
git stash clear
git stash branch <branchname> [<stash>]

常用实例

# 暂存当前更改
git stash

# 暂存时添加说明
git stash save "WIP: 登录功能"

# 暂存包含未跟踪的文件
git stash -u
git stash --include-untracked

# 暂存所有更改(包括已忽略的文件)
git stash -a

# 查看暂存列表
git stash list

# 恢复最近的暂存并删除
git stash pop

# 恢复最近的暂存但保留
git stash apply

# 恢复指定暂存
git stash apply stash@{2}

# 恢复暂存并恢复暂存区状态
git stash apply --index

# 删除指定暂存
git stash drop stash@{0}

# 清空所有暂存
git stash clear

# 查看暂存内容
git stash show
git stash show -p    # 显示完整diff

# 基于暂存创建新分支
git stash branch feature/new stash@{0}

# 部分暂存(交互式选择)
git stash -p

典型工作流

# 1. 正在开发功能,需要紧急修复 bug
git stash save "WIP: 用户注册功能"

# 2. 切换到 bugfix 分支
git checkout hotfix/bug-123

# 3. 修复完成后切回
git checkout feature/register

# 4. 恢复之前的工作
git stash pop