git stash
git stash命令用来暂存工作区,不多说,下面看例子:
同样查看当前git状态:
下面开始:
先创建一个新分支,不切换分支,依然在master分支上做一个新的提交:
然后切换分支,到新分支上做修改:
此时尝试切回master分支:
git提示修改会被覆盖,在切回分支前要先提交。
提交之后再切换分支是肯定可以的,当还有另一种方法,使用stash命令:
git stash
可以看到,使用git stash命令后,就可以正常切换分支了。
恢复工作状态
保存工作状态后怎么恢复呢?首先可以通过命令:
git stash list
查看所有保存的状态:
再修改一次工作区然后保存工作状态:
这一使用的是:
git stash save "stash second"
save后面是添加的消息,方便区分
查看所有状态:
可以看到,有两条记录。
下面开始恢复,使用命令:
git stash pop
可以看到,第一条stash恢复了,并提示删除了这个保存的工作状态。再使用git stash list会发现只剩下一条记录。
当然也可以只恢复但不删除保存的状态:
git stash apply
git 提示要先提交,那提交后再尝试:
可以看到有冲突,因为两个stash修改了test.txt中的同一行。此时使用git stash list会发现该状态还在
解决冲突:使用vi test.txt编辑文件,保留需要的即可
当然也可以手动删除保存的工作状态:
git stash drop stash@{0}
stash@{0}其实就是查看所有保存的工作状态是看到的行首部分:
同理,也可以通过这种形式恢复任意一个保存:
git stash apply stash@{0}