持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第29天,点击查看活动详情
了解Git的原理以及不同场景下的使用技巧,能有效避免在关键时刻操作Git时焦头烂额......
暂存当前工作进度是在开发中经常会使用到的一个功能,如果在切换分支之前无论代码是否完善都使用commit后再切换,那就来试试git stash吧~
暂存当前工作进度 【 git stash 】
代码写到一半还未提交,功能尚未完善,但又要临时切换到其他分支,这时就需要将本地没提交的内容进行缓存,缓存后如果执行git commit是没有任何本地提交的(因为缓存后从当前分支移除了)
暂存修改:
以堆栈的方式进行暂存
git stash
git stash save "暂存备注"
恢复:
这里建议使用apply而非pop,apply不会删除记录,适用于多分支的情况。
git stash apply
- 如果在stash之后,又新增了改动的文件,不会被记入缓存的堆栈中,还需要再执行
git add 文件名.后缀指令把新增的改动加入缓存,"被忽略"状态的文件同样不会被记入缓存 - 如果在修改代码的时候,需要更新远程的代码,并且产生冲突时,
git pull会失败,此时可以使用stash进行暂存。
git stash
git pull
git stash apply
查看暂存文件: 输出的结果中,stash@{0}相当于暂存的版本,对指定文件stash操作时需要添加版本
git stash list
执行后的结果:
删除不想要的储藏记录:
git stash apply --index
相关指令:
| 指令 | 含义 |
|---|---|
| git stash list | 显示暂存的文件列表 |
| git stash stash save 'xxx' | 显示暂存的文件列表,并添加备注 |
| git stash apply | 恢复暂存的内容,不会将内容从堆栈中删除 |
| git stash pop | 恢复暂存的内容,会删除堆中的记录 |
| git stash show | 对比最新保存的内容和当前目录的差异(-p查看全部差异) |
| git stash drop | 删除指定的(单个)暂存,如:git stash drop stash@{0} |
| git stash clear | 删除所有暂存 |
| git stash branch | 从stash创建分支 |