- 1. 应用场景
- 2. 添加储藏
- 3. 查看储藏
- 4. 删除储藏
- 5. 使用储藏
- 6. 常见用法
1. 应用场景
git stash 命令用于将工作区中的更改和暂存区中的内容储存起来
日常开发中,会经常遇到这种场景
我们正在 dev 分支开发新功能,做到一半时,产品经理过来和我们反馈了一个紧急 bug,需要马上解决,但是做了一半的新功能又不想提交到版本库。这时可以使用 git stash push
先将当前进度保存起来,然后去修复 bug,修复完后使用 git stash apply
恢复之前保存的进度即可
场景1、需要切换到另一个分支(master)处理 bug
代码语言:javascript复制git stash push -m '功能开发中'
git checkout master
场景2、需要回到新功能编写前的状态,也就是 dev 分支的最新提交记录
代码语言:javascript复制git stash push -m '功能开发中'
使用 git stash 的前提必须是版本库中已有提交记录,否则会出现下面提示
代码语言:javascript复制$ git stash
# 您还没有初始提交
You do not have the initial commit yet
没有可以储存的内容(工作区中没有更改,暂存区中也没有内容)
代码语言:javascript复制$ git stash
# 没有要保存的本地更改
No local changes to save
2. 添加储藏
添加储藏
代码语言:javascript复制git stash
-m,--message
添加储藏和备注信息
git stash push -m <message>
3. 查看储藏
查看所有储藏(所有分支共享储藏内容,而不是像提交记录每个分支都是独立的)
代码语言:javascript复制git stash list
查看文件变动差异
代码语言:javascript复制# 显示哪些文件变动了几行
git stash show <stash>
# 显示更加详细的变动信息,可以看到新增、减少了什么内容
git stash show -p <stash>
4. 删除储藏
删除某个储藏
代码语言:javascript复制git stash drop <stash>
清除所有储藏
代码语言:javascript复制git stash clear
5. 使用储藏
应用储藏
代码语言:javascript复制# 应用指定的储藏
git stash apply <stash>
# 应用并删除指定的储藏
git stash pop <stash>
<stash>
指的是 git stash list
命令输出结果左侧的值,如下图所示
# 错误:您对以下文件的本地更改将被“合并”覆盖
error: Your local changes to the following files would be overwritten by merge:
1.txt
# 请在合并前提交或隐藏更改
Please commit your changes or stash them before you merge.
6. 常见用法
代码语言:javascript复制# 添加存储
git stash push -m <message>
# 查看所有存储
git stash list
# 查看储藏文件差异
git stash show -p <stash>
# 应用储藏
git stash apply <stash>
# 应用并删除储藏
git stash pop <stash>
# 删除指定储藏
git stash drop <stash>
# 清空储藏
git stash clear