一、基本用法
1. 保存当前更改
git stash
这会将当前工作目录中的更改保存到一个新的stash中,并使工作目录回到干净的状态(即HEAD状态)。
2. 查看所有stash
git stash list
这会列出所有保存的stash。
3. 应用最新的stash
git stash apply
这会将最新的stash应用到当前分支,但不会删除stash。
4. 应用并删除最新的stash
git stash pop
这会将最新的stash应用到当前分支,并删除该stash。
二、高级用法
1. 创建带消息的stash
git stash save "your message"
这会创建一个带有特定消息的stash,方便日后识别。
2. 应用特定的stash
git stash apply stash@{n}
其中 n
是stash的索引,可以通过 git stash list
查看。例如,git stash apply stash@{1}
会应用第二个stash。
3. 删除特定的stash
git stash drop stash@{n}
其中 n
是stash的索引。例如,git stash drop stash@{1}
会删除第二个stash。
4. 清除所有stash
git stash clear
这会删除所有的stash。
5. 查看stash的内容
git stash show stash@{n}
这会显示特定stash的摘要信息。如果需要查看详细的差异,可以加上 -p
参数:
git stash show -p stash@{n}
6. 将stash应用到其他分支
git stash branch <branch_name>
这会创建一个新分支并将最新的stash应用到该分支。例如:
git stash branch new-feature
三、使用场景
- 在切换分支前保存未完成的工作 例如,你正在开发新功能,但需要切换到另一个分支修复bug,可以使用
git stash
保存当前更改,然后在修复完bug后使用git stash apply
恢复更改。 - 在拉取远程更改前保存本地更改 当你需要拉取远程仓库的最新更改,但本地有未提交的修改,可以使用
git stash
暂存本地更改,然后执行git pull
拉取最新代码,最后使用git stash apply
恢复本地更改。 - 临时清理工作区 当你需要暂时清理工作区进行某些操作,可以使用
git stash
保存当前工作,操作完成后使用git stash apply
恢复工作区状态。
通过 git stash
,你可以灵活管理未提交的更改,提高工作效率。