Git | 当代码写到一半时,如何暂存当前工作进度

619 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第29天,点击查看活动详情

了解Git的原理以及不同场景下的使用技巧,能有效避免在关键时刻操作Git时焦头烂额......

暂存当前工作进度是在开发中经常会使用到的一个功能,如果在切换分支之前无论代码是否完善都使用commit后再切换,那就来试试git stash吧~

暂存当前工作进度 【 git stash 】

代码写到一半还未提交,功能尚未完善,但又要临时切换到其他分支,这时就需要将本地没提交的内容进行缓存,缓存后如果执行git commit是没有任何本地提交的(因为缓存后从当前分支移除了)

image.png

暂存修改:

以堆栈的方式进行暂存

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

执行后的结果: image.png

删除不想要的储藏记录:

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创建分支