Git(1) -- git stash 储藏与清理

本文介绍GitStash的使用场景及方式,演示如何在中途切换任务时暂存未完成的更改,避免因工作目录不干净而阻止分支切换。通过具体实例说明GitStash的基本操作,包括保存、应用和移除暂存的更改。

git stash使用场景及方式

由于通常都是使用idea上的git插件,通过插件提供的功能来操作git。对实际的git工作流中遇到的许多问题总是不明不白。现在就慢慢一个个点看文档来理清楚。

  简单而言,git stash就是用于处理已改动而未提交的工作目录状态。
  举例来讲,当前需要在分支A上实现一个功能F1, 现在功能F1实现了一半,但需要优先切换到分支B修复bug1 。
  这个时候,我们通常不应该为了仅仅实现一半的功能而做一次Git提交。这个时候git会阻止分支切换,因为在当前分支下所做的修改可能会与想要切换的分支产生冲突。
  git分支切换要求保持当前分支的工作目录处于一个干净的状态。这个时候就可以使用git stash将当前所做的改动进行暂存,git将会将本次分支改动保存到一个栈上。

git stash // 保存当前分支上所做的修改

此时查看工作目录状态将得到

git status
# On branch master
nothing to commit, working directory clean

查看暂存栈会看到此次暂存的记录

git stash list
stash@{0}: xxx(改动描述)

然后 git checkout B切换到分支B,修复完bug1之后再使用git checkout A 切换到A分支。接着使用 git stash apply stash@{0} 应用之前保存的修改,即可将工作目录还原到先前的状态了。

其他命令

git stash drop stash@{0} 移除指定的stash
git stash pop 将stash栈的第一个stash应用并移除
git stash show stash@{0} -p  查看stash0所做的改动
git stash branch newbranch 新建分支
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值