使用场景
git stash
主要用于在 Git 中临时保存工作进度,以便切换到其他分支或执行其他任务而不会丢失当前的工作。这在以下场景中特别有用:
-
紧急切换分支:如果你正在一个分支上进行开发,但需要紧急切换到另一个分支解决问题,而当前工作尚未完成且不希望提交,这时可以使用
git stash
来保存当前的工作。 -
清理工作目录:当你需要在干净的工作目录中执行操作(例如运行测试或构建)时,可以先将当前未提交的修改保存到 stash 中。
-
避免提交不完整的工作:当你正在进行一项复杂的任务,想分阶段提交,但尚未完成当前阶段时,
git stash
可以帮助你临时保存进度,待准备好后再恢复。
使用方式
-
保存工作进度
git stash
- 将当前未提交的更改(包括跟踪的文件和未跟踪的文件)保存到一个新的 stash 中。
-
查看 Stash 列表
git stash list
- 列出所有已保存的 stash 条目。
-
恢复工作进度
git stash apply [stash_id]
- 恢复指定的 stash 内容到工作目录。
stash_id
可选,如果不指定,默认恢复最新的 stash。
- 恢复指定的 stash 内容到工作目录。
-
恢复并删除 Stash
git stash pop
- 恢复 stash 内容到工作目录,并将该 stash 从 stash 列表中删除。
-
删除 Stash
git stash drop [stash_id]
- 删除指定的 stash 条目。
stash_id
可选,如果不指定,默认删除最新的 stash。
- 删除指定的 stash 条目。
-
保存特定更改
git stash push -m "stash message" [pathspec]
- 保存特定文件的更改到 stash 中,同时添加一条描述信息。
-
查看 Stash 内容
git stash show [stash_id]
- 显示 stash 中的更改内容。可以添加
-p
参数查看差异。
- 显示 stash 中的更改内容。可以添加
-
创建分支并恢复 Stash
git stash branch [branch_name]
- 基于 stash 创建一个新的分支,并恢复 stash 的内容到该分支。
通过 git stash
,你可以灵活管理和保存工作进度,无需担心未完成的工作被覆盖或丢失,非常适合多任务并行开发的场景。