git stash

意外丢失的内容

问题

在某次合并后,test分支与master分支下都有文件5.txt,这时:

  1. test分支下修改5.txt,但是没有commit

  2. 这时切换到master分支下同样修改了5.txt这个文件,但是在master分支下执行了add、commit命令

  3. 再次切换到test分支下,会发现在步骤1里面对5.txt的修改意外丢失了!

解决方案

test分支在步骤1执行完之后,执行git stash将没有commit的更改压入堆栈中保存,再切换到其他分支,再次切换到test分支时,用git stash pop从堆栈中弹出保存的更改

有关命令

# 将未提交的更改压入堆栈中保存
git stash
# 显示使用git stash保存的所有更改
git stash list
# 弹出一条前面使用git stash压入堆栈中的更改(在堆栈中删除该更改)
git stash pop
# 恢复一条堆栈中的更改(并不会在在堆栈中删除该更改)
git stash apply

实际情境

你开发的应用程序突然发现一个紧急bug,这时你必须立刻切换到发行分支去修补那个bug,但是目前你所在的开发分支正在开发一个新功能,才开发了一半,还不到commit的时候。

这个时候切换到发行分支改完bug,再切换回开发分支,就可能会使开发分支没有commit的内容丢失!这时就会用到git stash

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值