在软件开发过程中,我们经常会遇到需要切换分支处理紧急任务,但又不想丢失当前分支的未提交更改的情况。这时,Git的stash
命令就派上用场了。stash
可以用来临时保存当前工作目录和暂存区的修改,从而让你能够轻松切换分支,避免代码冲突与丢失。
Git stash的基本概念
工作目录
工作目录是指当前开发者正在工作的目录,其中包含了所有已修改但尚未提交的文件。
暂存区
暂存区,也称作索引(Index),是提交前的一个临时区域,用于存放将要被提交的更改。
Stash
Stash是一个用于临时存储工作目录和暂存区更改的栈(Stack)。通过使用stash
,你可以将当前的工作状态保存起来,以便在需要时恢复。
Git stash的常用命令
保存当前工作
git stash save "save message"
这条命令会保存当前工作目录和暂存区的所有修改,并将它们保存到一个新的stash中。你可以为stash添加一个备注信息,以便于以后查找。
查看所有已存储的stash
git stash list
这条命令会列出所有已存储的stash列表,每个stash都有一个唯一的标识符(如stash@0
)。
显示做了哪些改动
git stash show
这条命令会显示最近保存的stash所包含的改动。
应用指定的stash
git stash apply stash@num
这条命令会应用指定的stash到当前工作目录,其中num
是stash的索引。
恢复最近的stash并删除它
git stash pop
这条命令会恢复最近的stash到当前工作目录,并从stash列表中删除它。
删除特定的stash
git stash drop stash@num
这条命令会删除指定的stash。
清空stash堆栈
git stash clear
这条命令会删除所有保存的stash。
使用场景举例
切换分支时保留修改
git stash # 保存当前工作
git checkout other-branch # 切换到其他分支
# 在其他分支上工作...
git checkout dev1 # 切换回原来的分支
git stash pop # 恢复之前的工作
解决紧急bug后恢复工作
git stash # 保存当前工作
# 解决bug...
git stash pop # 恢复之前的工作
总结
通过掌握Git的stash
命令,你可以轻松管理临时存储工作,避免代码冲突与丢失。使用stash
可以帮助你更好地组织你的工作流程,提高开发效率。