Git Stash 是 Git 版本控制系统中一个非常实用的功能,它允许开发者在不提交本地更改的情况下保存当前的工作进度。这对于处理紧急任务、切换分支或者回滚代码时特别有用。以下是关于 Git Stash 的详细说明和操作指南。
什么是 Git Stash?
Git Stash 的工作原理是将当前工作区的修改和暂存区的修改保存到一个临时的 stash 列表中。这样,开发者就可以放心地切换到其他分支或进行其他任务,而不会丢失当前的工作进度。
Git Stash 的主要用途:
- 快速切换任务:当你在进行一项工作,但需要紧急切换到另一个任务时,可以使用 stash 保存当前工作状态。
- 保存实验性修改:如果你想尝试一些可能不会保留的修改,可以先将它们 stash 起来,而不是直接提交。
- 在不同分支间移动更改:你可以在一个分支上 stash 修改,然后在另一个分支上应用这些修改。
Git Stash 的基本用法
保存工作进度
git stash save "工作进度描述"
或者
git stash
使用 git stash save
命令可以保存当前的工作进度,并可以添加一个描述作为备注。
查看stash列表
git stash list
使用 git stash list
命令可以查看当前保存的所有 stash。
应用暂存的更改
git stash apply
或者
git stash apply stash@num
使用 git stash apply
命令将 stash 中的更改应用到当前工作区。如果不指定 stash 名称,则会默认应用最新的 stash。
删除 stash
git stash drop
或者
git stash drop stash@num
使用 git stash drop
命令删除最近的 stash。如果不指定 stash 名称,默认会删除最近的 stash。
清除所有 stash
git stash clear
使用 git stash clear
命令删除所有保存的 stash。
实例说明
假设你正在 feature-branch
分支上开发新功能,但突然接到一个紧急任务需要在 bugfix-branch
分支上进行修复。以下是使用 Git Stash 的步骤:
- 保存当前工作进度:
git stash save "保存 feature-branch 的工作进度"
- 切换到
bugfix-branch
分支:
git checkout bugfix-branch
修复 bug。
切换回
feature-branch
分支:
git checkout feature-branch
- 恢复之前保存的工作进度:
git stash apply
或者
git stash apply stash@0
通过以上步骤,你可以轻松地保存和恢复工作进度,从而高效地管理你的 Git 仓库。