Git stash 是一个强大的功能,它允许开发者临时保存当前的工作进度,以便于在需要时可以轻松地切换到其他分支或执行其他任务,而不用担心丢失当前的工作。本文将详细介绍 Git stash 的使用方法、场景以及一些高级技巧。
什么是 Git stash?
Git stash 允许你将未提交的更改(包括暂存区和未跟踪的文件)保存到一个“储藏”中。这样,你就可以在不提交当前工作的情况下,切换到其他分支或执行其他任务。
使用场景
- 紧急切换分支:当你正在一个分支上进行开发,但需要紧急切换到另一个分支解决问题时,可以使用 git stash 保存当前的工作。
- 清理工作目录:当你需要在干净的工作目录中执行操作(例如运行测试或构建)时,可以先将当前未提交的修改保存到 stash 中。
- 避免提交不完整的工作:当你正在进行一项复杂的任务,想分阶段提交,但尚未完成当前阶段时,git stash 可以帮助你临时保存进度。
常用命令
保存工作进度
git stash save "Your stash message"
# 简写形式(不带消息)
git stash
查看Stash列表
git stash list
恢复工作进度
git stash apply [stashid]
# 应用最新的 stash
git stash apply
# 应用特定的 stash
git stash apply stash@n
恢复并删除Stash
git stash pop [stashid]
# 应用并删除最新的 stash
git stash pop
# 应用并删除特定的 stash
git stash pop stash@n
删除Stash
git stash drop [stashid]
# 删除最新的 stash
git stash drop
保存特定更改
git stash push -m "stash message" [pathspec]
高级技巧
- 使用
git stash apply --index
:这个命令会应用 stash 中的更改到暂存区,但不会应用到工作区。 - 使用
git stash show -p
:这个命令可以查看 stash 中每个文件的具体改动。 - 使用
git stash create
:这个命令可以创建一个新的 stash,而不需要先保存当前的工作进度。
总结
Git stash 是一个非常有用的工具,可以帮助开发者更好地管理他们的工作进度。通过掌握 Git stash 的使用方法,你可以更高效地工作,避免因切换分支或执行其他任务而丢失工作进度。