git 实用技巧之git stash

2,972 阅读1分钟

使用场景

当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作。问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点。 储藏(stash)可以获取你工作目录的中间状态——也就是你修改过的被追踪的文件和暂存的变更——并将它保存到一个未完结变更的堆栈中,随时可以重新应用。

用法

储存修改

git stash 储存当前修改(包括暂存的和非暂存的)

stash操作只在本地发生,并不会随着push操作上传至云端

PS:建议每次本地暂存的时候加上备注👇

git stash save 取代 git stash

git stash save "test-cmd-stash"

查看所有本地暂存修改

git stash list

恢复修改

恢复并删除本地备份:git stash pop

将缓存堆栈中的第一个stash删除,并将对应修改应用到当前的工作目录下

恢复不删除本地备份:git stash apply

将缓存堆栈中的stash多次应用到工作目录中,但并不删除stash拷贝。

可以指定恢复某个名称的修改,只需要在后面加上名称即可

移除修改

移除单个修改:git stash drop <修改名>

默认是移除第一个

清空所有修改:git stash clear

查看stash的diff

git stash show <修改名>

从stash创建分支

git stash brach <分支名>