git临时保存工作区和暂存区的修改,以便在需要时恢复。它常用于切换分支、紧急修复或尝试不同方案时保留当前进度
git stash 命令用于临时保存工作区和暂存区的修改,以便在需要时恢复。它常用于切换分支、紧急修复或尝试不同方案时保留当前进度。
- 保存修改:git stash 或 git stash push 会将当前未提交的修改(包括工作区和暂存区)保存到一个临时堆栈中,并清空工作区
git stash
如果需要包含未跟踪的文件(如新创建的文件),可使用 -u 参数;包含所有文件(包括被忽略的)则使用 -a(-a 或 --all:除了未跟踪的文件外,还会将忽略文件(.gitignore 文件中列出的文件)保存到 stash 中。)
- 添加描述:可为 stash 添加自定义描述,便于识别:
git stash push -m "正在开发登录功能"
查看和管理 stash 列表
- 列出所有 stash:git stash list 显示保存的 stash 条目,每个条目包含名称(如 stash@{0} 为最新)、分支名和描述。
- 查看具体内容:git stash show 显示最新 stash 与工作区的差异;使用 -p 参数可查看详细补丁格式:
git stash show -p
恢复和删除 stash
- 恢复修改:
- git stash pop:恢复最新 stash 并从列表中删除。如果恢复时发生冲突,需手动解决后运行 git stash drop 清理。
- git stash apply:恢复修改但不删除 stash,可多次应用同一 stash。
删除 stash:
- git stash drop:删除最新 stash。
- git stash clear:删除所有 stash 记录。
高级功能
- 从 stash 创建分支:git stash branch 基于 stash 创建新分支并自动应用修改,适用于分支冲突场景。
- 选择性应用:可通过 git stash show --name-only 查看 stash 中的文件列表,然后使用 git checkout stash@{0} – 恢复特定文件。
实际应用场景
- 临时切换分支:在开发中途需查看其他分支代码时,保存当前进度后切换分支。
- 紧急修复:临时保存工作区后快速修复生产环境 bug。
- 多任务切换:保存多个任务的进度,按需恢复不同 stash
注意事项
- stash 仅存储本地修改,不会推送到远程仓库。
- 如果 pop 时发生冲突,需手动解决冲突后才能完成恢复

1023

被折叠的 条评论
为什么被折叠?



