Git stash命令在版本控制系统操作中作为一个非常有用的功能,允许用户临时保存当前工作目录中的更改并清理工作目录,使其回到最近的提交状态,便于切换分支或暂时撤回更改,而不丢失工作进度。
基本使用
创建Stash
git stash
这个命令将会保存工作目录和暂存区的当前更改。执行这个命令后,你的工作目录将是干净的,与最后一次提交的状态相同。
查看Stash列表
git stash list
此命令显示了所有的stash项。默认情况下,stash项被命名为 stash@{0}
, stash@{1}
, stash@{2}
, 依此类推,其中 stash@{0}
是最新的stash。
应用Stash
git stash apply
该命令恢复最新的stash内容。如果需要恢复指定的stash项,可以使用:
git stash apply stash@{n}
其中 n
是要恢复的stash的编号。
删除Stash项
git stash drop stash@{n}
通过此命令可以删除指定的stash项。
恢复Stash并删除Stash项
git stash pop
这个命令将应用最上面的stash并将其从stash列表中删除。
清空所有Stash项
git stash clear
执行后,所有缓存的stash项都会被删除。
高级使用
保存未暂存的更改
默认情况,git stash
不会保存未暂存的更改。如果也想保存这些更改,可以使用:
git stash -k
git stash --keep-index
包含未跟踪的文件
如果工作目录有未跟踪的文件,可以使用以下命令将它们也加入到stash中:
git stash -u
git stash --include-untracked
创建带有描述的stash
git stash save "Your custom message"
这样可以为stash项添加一个描述,方便以后识别。
案例分析:
假定你正在开发一个功能,在开发的中途,你需要切换到其他分支处理一个紧急的bug。
- 保存当前进度
首先存储当前的工作进度,使工作目录干净:
git stash
- 切换分支修复bug
git checkout fix-bug-branch
# ... 解决bug ...
git commit -am "Fix bug"
- 返回之前的工作
git checkout feature-branch
- 恢复进度
接着,你可以使用以下命令恢复你的工作进度:
git stash pop
此时,之前保存的更改将会重新应用到工作目录,并且该更改会从stash列表中删除。
通过上述案例,我们看到stash命令能够在不丢失进度的情况下,帮助开发者临时切换开发上下文,这在处理多个任务或紧急bug时特别有用。正确使用Git stash可以大大提高开发的灵活性和效率。
云服务器/高防CDN推荐
蓝易云国内/海外高防云服务器推荐
海外免备案云服务器链接:www.tsyvps.com
蓝易云安全企业级高防CDN:www.tsycdn.com
持有增值电信营业许可证:B1-20222080【资质齐全】
蓝易云香港五网CN2 GIA/GT精品网络服务器。拒绝绕路,拒绝不稳定。