1. 应用场景
2. 添加储藏
3. 查看储藏
4. 删除储藏
5. 使用储藏
6. 常见用法

1. 应用场景


git stash 命令用于将工作区中的更改和暂存区中的内容储存起来

日常开发中,会经常遇到这种场景

我们正在 dev 分支开发新功能,做到一半时,产品经理过来和我们反馈了一个紧急 bug,需要马上解决,但是做了一半的新功能又不想提交到版本库。这时可以使用 git stash push 先将当前进度保存起来,然后去修复 bug,修复完后使用 git stash apply 恢复之前保存的进度即可

场景1、需要切换到另一个分支(master)处理 bug

 
  1. git stash push -m '功能开发中'
  2. git checkout master

场景2、需要回到新功能编写前的状态,也就是 dev 分支的最新提交记录

 
  1. git stash push -m '功能开发中'

使用 git stash 的前提必须是版本库中已有提交记录,否则会出现下面提示

 
  1. $ git stash
  2. # 您还没有初始提交
  3. You do not have the initial commit yet

没有可以储存的内容(工作区中没有更改,暂存区中也没有内容)

 
  1. $ git stash
  2. # 没有要保存的本地更改
  3. No local changes to save

2. 添加储藏


添加储藏

 
  1. git stash

-m,--message 添加储藏和备注信息

 
  1. git stash push -m <message>

3. 查看储藏


查看所有储藏(所有分支共享储藏内容,而不是像提交记录每个分支都是独立的)

 
  1. git stash list

查看文件变动差异

 
  1. # 显示哪些文件变动了几行
  2. git stash show <stash>
  3. # 显示更加详细的变动信息,可以看到新增、减少了什么内容
  4. git stash show -p <stash>

4. 删除储藏


删除某个储藏

 
  1. git stash drop <stash>

清除所有储藏

 
  1. git stash clear

5. 使用储藏


应用储藏

 
  1. # 应用指定的储藏
  2. git stash apply <stash>
  3. # 应用并删除指定的储藏
  4. git stash pop <stash>

<stash> 指的是 git stash list 命令输出结果左侧的值,如下图所示

 
  1. # 错误:您对以下文件的本地更改将被“合并”覆盖
  2. error: Your local changes to the following files would be overwritten by merge:
  3. 1.txt
  4. # 请在合并前提交或隐藏更改
  5. Please commit your changes or stash them before you merge.

6. 常见用法


 
  1. # 添加存储
  2. git stash push -m <message>
  3. # 查看所有存储
  4. git stash list
  5. # 查看储藏文件差异
  6. git stash show -p <stash>
  7. # 应用储藏
  8. git stash apply <stash>
  9. # 应用并删除储藏
  10. git stash pop <stash>
  11. # 删除指定储藏
  12. git stash drop <stash>
  13. # 清空储藏
  14. git stash clear

 

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐