Git stash系列详解和使用

文章详细介绍了gitstash的使用,包括隐藏未完成的代码、查看stash列表、恢复缓存、应用缓存、显示改动、丢弃和清除缓存。gitstash适用于在切换分支时保存未提交的修改,新增文件需先gitadd才能被stash。推荐使用GitGraph插件辅助管理。
摘要由CSDN通过智能技术生成

有的时候项目中需要不停的切换分支,那我们已经修改的代码还不想提交,用什么方法既不用提交自己的代码成功切换分支呢?
下面就介绍下git stash的系列用法,stash在英文意思是隐藏,git stash 的作用也是隐藏未完成的代码,防止它干扰别人或者新分支的工作。

1、git stash

git stash将本地没提交的内容(git commit的内容不会被缓存 但git add的内容会被缓存)进行缓存并从当前分支移除,缓存的数据结构为堆栈,先进后出。

git stash 可以多次使用,每次使用都会新加一个stash@{num},num是编号。

其中git stash与git stash save是一样的,将没有提交的内容缓存并移除,而这条缓存名称为最新一次提交的commit -m的内容,如果没有本地提交则是拉远程仓库是的commit内容。

git stash save “xxxxxxxxxxx”,加上自己缓存的注解,便于查找(不过在使用的情况来看,没啥用,因为git stash会标注最新commit的内容,在vscode中使用Git Graph插件更能直观的了解)

2、git stash list

git stash list的作用是查看stash了哪些存储,每一行的冒号前面的字符串就是标识此隐藏的id

3、git stash pop

命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}

4、git stash apply

git stash apply和git stash pop功能类似,但不会把存储从存储列表中删除(pop命令将缓存弹出来应用并且删除这条应用的缓存,而apply不会删除,你分支切换回来他还在),默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}

5、git stash show

git stash show显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{KaTeX parse error: Expected 'EOF', got '}' at position 4: num}̲,比如第二个 git stas…num} -p ,比如第二个:git stash show stash@{1} -p

6、git stash drop stash@{$num}

git stash drop stash@{ $ num}丢弃stash@{$ num}存储,从列表中删除这个存储。如果你就缓存了一个,直接使用git stash drop即可,如果多条,需要加上后面的数量参数。

同时需要注意,如果你使用git stash pop,他会自己删除缓存,但是你使用的如果是git stash apply,需要手动删除 list 列表中的记录(即drop -p)

7、git stash clear

git stash clear也是删除命令,不过他是删除所有缓存的stash,还是要慎用!

8、git stash branch

git stash branch指定或最新缓存创建分支,but这个命令我没咋用过!

9、需要注意的是!!!

新增的文件,直接执行stash是不会被存储的,没有在git 版本控制中的文件,是不能被git stash 存起来的

stash后新增的文件并没有进入缓存,这是因为git还没有追踪这个新增的文件,所以需要进行git add [文件名]让git追踪这文件,再进行stash就可以对新文件进行操作。

git add 只是把文件加到git 版本控制里,并不等于就被stash起来了,git add和git stash 没有必然的关系,但是执行git stash 能正确存储的前提是文件必须在git 版本控制中才行。

平时使用比较多的是git stash apply,其他的用的比较少,写到这里仅仅是做记录,另外推荐大家使用vscode的Git Graph插件,更加直观的看到缓存列表!!!

参考:
https://www.cnblogs.com/zndxall/archive/2018/09/04/9586088.html

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石子君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值