git不要只会pull和push 之 git stash 命令详解

git stash官方解释:当您想记录工作目录和索引的当前状态,但又想返回一个干净的工作目录时,请使用git stash。该命令将保存本地修改,并恢复工作目录以匹配头部提交。


简单概括:stash 命令能够将还未 commit 的代码存起来,让你的工作目录变得干净。

应用场景

应用场景:某一天你正在 feature 分支开发新需求,突然产品经理跑过来说线上有bug,必须马上修复。而此时你的功能开发到一半,于是你急忙想切到 master 分支,然后你就会看到以下报错:

123.png

因为当前有文件更改了,需要提交commit保持工作区干净才能切分支。由于情况紧急,你只有急忙 commit 上去,commit 信息也随便写了个“暂存代码”,于是该分支提交记录就留了一条黑历史...(真人真事,看过这种提交)

命令使用

如果你学会 stash,就不用那么狼狈了。你只需要:

git stash

就这么简单,代码就被存起来了。


当你修复完线上问题,切回 feature 分支,想恢复代码也只需要:

git stash apply

相关命令

# 保存当前未commit的代码
git stash

# 保存当前未commit的代码并添加备注
git stash save "备注的内容"

# 列出stash的所有记录
git stash list

# 删除stash的所有记录
git stash clear

# 应用最近一次的stash
git stash apply

# 应用最近一次的stash,随后删除该记录
git stash pop

# 删除最近的一次stash
git stash drop


当有多条 stash,可以指定操作stash,首先使用stash list 列出所有记录:

git stash list
stash@{0}: WIP on ...
stash@{1}: WIP on ...
stash@{2}: On ...


应用第二条记录:

git stash apply stash@{1}

pop,drop 同理。


总结:git stash:存储临时代码。

尾声

使用sourceTree工具来进行版本管理控制的话,sourceTree工具有个一个“贮藏”功能,该功能可以将本地未commit提交的文件临时保存起来,保存起来后,可以切换到别的分支进行开发,别的分支开发完成后,再次切换回该分支的时候,又可以从“贮藏”区恢复进行继续之前的改动。其实sourceTree这个“贮藏”功能就是使用的git stash



声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。

小周博客
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

精彩评论

全部回复 0人评论 7,777人参与

loading