为什么要用git stash

本文通过实战演示Git stash的功能及应用场景,解决切换分支时未提交更改的问题,避免混乱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

git stash 是什么,以及为什么要用stash?
这个文档会告诉你,
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137602359178794d966923e5c4134bc8bf98dfb03aea3000?t=1512708326664#comments

但是看完后,就会有疑问,觉着这个功能很鸡肋,没必要用。修BUG的时候,直接切换分支,再回来到原来的分支不就行了。
测试了一把,原因自现。

情景如下:
    1、在dev分支,创建一个新文件test6.txt。并add它,让它stage。

    2、这时切回master分支,你会看到这个test6.txt居然也在master分支里。但它实际上是属于dev分支的。怎么办?

    3、git stash就有作用了。切回dev分支,执行git stach。这时git bash会告诉你:
“Saved working directory and index state WIP on newF2: b63fbcb add test6.txt
HEAD is now at b63fbcb add test6.txt”。
它已经把test6.txt的现场保存好了。

    4、这时你在切回master分支,test6.txt就消失了。
现在懂了吧。。。。为什么要用git stash。

另外:没有被stage或者head的文件,是无法被 stash的。而且会显示在各个分支里。让你迷惑它到底该属于哪个分支。
所以stash起作用的全是stage 或者 head 的文件。理论来自官网,“也就是你修改过的被追踪的文件和暂存的变更——并将它保存到一个未完结变更的堆栈中,随时可以重新应用。”
这句话来自官网:https://git-scm.com/book/zh/v1/Git-%E5%B7%A5%E5%85%B7-%E5%82%A8%E8%97%8F%EF%BC%88Stashing%EF%BC%89

学习链接:
1.https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137602359178794d966923e5c4134bc8bf98dfb03aea3000?t=1512708326664#comments

2.https://git-scm.com/book/zh/v1/Git-%E5%B7%A5%E5%85%B7-%E5%82%A8%E8%97%8F%EF%BC%88Stashing%EF%BC%89

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值