git stash是什么?
想象一下,您正在一个功能分支上编码,突然需要切换到另一个分支去修复一个紧急的 Bug。但您当前的工作还没完成,不想提交一个半成品。这时,git stash
就像一个 "剪贴板" 或 "临时储物柜",它可以把您所有未提交的更改(包括已跟踪文件的修改和暂存区的更改)安全地保存起来,让工作目录恢复到上一次提交的干净状态。之后,您可以随时将这些更改重新应用回来。
常用命令
| git stash
或 git stash push
| 储存当前所有未提交的更改(默认不包括未跟踪的文件)。 |
| git stash save "消息"
| 储存更改并添加一条描述消息(较新版本推荐使用 git stash push -m "消息"
)。 |
| git stash list
| 列出所有的储存条目。 |
| git stash apply
| 应用 最新的储存(stash@{0}
),但不删除它。 |
| git stash pop
| 应用并删除 最新的储存(stash@{0}
)。 |
| git stash drop
| 删除 指定的储存,不应用。例如 git stash drop stash@{1}
。 |
| git stash clear
| 清空所有储存。 |
| git stash show
| 显示最新储存的文件改动概览。 |
| git stash show -p
| 显示最新储存的详细代码差异。 |
git stash branch <分支名> |
基于创建储存时的提交,新建一个分支并应用储存。解决冲突的神器 |
---|
分支管理
git 的分支整体预览图如下:

master:git默认主分支(这里不作操作)。
stable:稳定分支,替代master,主要用来版本发布。
develop:日常开发分支,该分支正常保存了开发的最新代码。
feature:具体的功能开发分支,只与 develop 分支交互。
release:release 分支可以认为是 stable分支的未测试版。比如说某一期的功能全部开发完成,那么就将 develop 分支合并到 release分支,测试没有问题并且到了发布日期就合并到 stable分支,进行发布。
bugfix:线上 bug 修复分支。