【Git】stash 用法总结

欢迎关注微信公众号:全栈工厂

本文主要参考

stash是我在工作中会经常用到的命令,因为我们在工作中经常会遇到临时情况,需要保留当前工作区的修改,转而去做其他代码的修改;另外我在更新分支代码的时候也习惯于先将当前工作区的代码先用stash保存起来,然后再更新分支代码,最后apply stash进行代码的冲突处理,这样做会更加的安全。stash的使用比较简单,但stash仍然有一些不常用的用法,这里我做简单总结一下。

1. 基础——道理大家都懂,就怕只有我不知道

stash命令主要用于处理工作目录杂乱的状态,即将所有工作区修改、跟踪的文件以及暂存区保持的文件打包,然后将未完成的修改保存到一个栈上。相当于将当前分支恢复到最近一次提交的状态。
来看看stash的基础用法:

  • <b>git stash list </b> 查看stash列表
  • <b>git stash ( pop | apply ) [<stash>] </b> 从stash栈中的某一个stash应用到当前工作区中(注:pop在应用完后会删除这个stash,apply则仍然保留)例:git stash apply stash@{0}
  • <b>git stash drop [<stash>]</b> 删除指定索引的stash 例:git stash drop stash@{0}
  • <b>git stash clear</b> 清空所有保存的stash列表
  • <b>git stash save [<message>]]</b> 将当前工作区、暂存区的改动保存到stash栈中
  • <b>git stash show [<stash>] 查看某一个stash的文件</b>
2.扩展——不常用的也要多多了解啊,以备不时之需

<b>git stash save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet] [-u|--include-untracked] [-a|--all] [<message>]</b>

① [-p|--patch] 会显示工作区和HEAD的差异,通过编辑差异文件,排除不需要保存的内容。和git add -p命令类似。在输入git stash save -p 后,系统会提示: <b>Stash this hunk [y,n,q,a,d,/,e,?]? </b> 其中y,n,q,a,d,/,e分别表示:
<pre>
y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk nor any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk nor any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk

       s - split the current hunk into smaller hunks
       e - manually edit the current hunk
       ? - print help

</pre>

②[-k|--[no-]keep-index] 是否重置暂存区,默认stash save 在保存之后会重置暂存区,如果不希望重置暂存区,可以使用git stash save -k
③[-q|--quiet]终端不打印输出
④[-u|--include-untracked]把没有添加到git的文件也会保存起来(例如刚刚新建的文件)
⑤ [-a|--all] 会把忽略的文件也保存下来

注:文中如有任何错误,请各位批评指正!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git作为时下最流行的代码管理工具,Git权威指南总结了十条喜欢Git的理由: 异地协同工作; 现场版本控制; 重...
    古斟布衣阅读 1,849评论 0 12
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,721评论 9 163
  • 简书(09班群)打卡模版 #幸福是需要修出来的~每天进步1%~幸福实修09班~08-姓名 20170719(2/3...
    14张建英阅读 252评论 0 0
  • 这篇文章,把我在寻找工具,使用工具的过程中,所犯的一系列错误,把他们整理出来,做个小结,自己能够学习,也希望能够对...
    朱明宽阅读 472评论 0 0
  • 薛先生应该想出现在我朋友圈里很久了吧。我说:我想你自然而然的出现,你答:你安排。 我长时间的谈了一段恋爱于2016...
    CCCQM阅读 1,036评论 0 7