使用场景
1.我们在本地分支开发时发现该分支有紧急bug需要修复,而在该分支新修改的内容又不想提交,有一种做法是将本地暂存区的内容形成一个新的commit,然后切换分支reset --hard到之前的分支,改完之后再切回来,这样的话会有一切不必要的log信息。如果我们不想提交完成一半或者不想提交的代码但又不得不去修改一个需要紧急修复的bug的时候,那么使用git stash就可以将你当前未提交到本地的代码推入到git的栈中,这时候你工作区间和上一次提交的内容完全一样,等修复完bug提交至服务器之后再使用git stash apply将之前一半的代码找回来。
2.如果你是多分支开发的话,当你正在进行的某一部分的工作没有完成,而你此时要切到另一个分支进行一些工作,可以使用stash保存起来,为了后继可以随时继续使用
用法
1.git stash save "test-stash"
将所有未提交过的修改都保存起来,用于后继回复当前的工作目录,当前目录会干净
2.重新应用缓存的stash
git stash pop,使用栈中第一个stash内容,并且删除
git stash apply,使用但是不删除
3.查看现有的stash
git stash list
4.移除stash
git stash drop stash@{2},移除某个stash
git stash clear,移除所有stash
5.查看stash的diff
git stash show,查看stash的diff
git stash show stash@{0} -p,查看全部diff
6.git stash branch stash-branch
创建一个stash分支,当你stash之后,在本地分支又接着进行开发,而stash之后的内容和stash的内容有冲突