当你想切换分支时,但工作区已经修改过了,如果你想切换分支,那么很遗憾,git
会报错。这时候git stash
命令就派上用场了。这个命令可以保存工作区的修改。然后你就可以切换分支了。下面是这个命令的具体的用法
tips
:此命令对于已经被跟踪的文件才会有效!
git stash
:保存当前工作区和暂存区的修改。
git stash save
“描述信息” :如果保存的内容过多可能会导致无法辨别需要恢复的保存记录,这时候就加上 save参数后面双引号后面填写此次保存的描述信息。
git stash list
: 显示保存列表。
git stash pop
: 恢复最近保存的记录并把恢复的记录从保存列表中删除。只恢复工作区!(默认会将被恢复的操作保留在工作区,但是不会自动帮你重新暂存)
git stash pop --index
:与上面命令的效果一样但是还会恢复暂存区!
git stash pop stash@{序号}
:恢复保存列表里面指定的保存记录,并把恢复的记录从保存列表中删除。
git stash --patch
:保存之前先比较工作区和HEAD之间的区别,然后选择是否重新编辑需要保存的文件。
git stash apply
:恢复最近保存的记录但不会删除保存列表里面对应的记录。(默认会将被恢复的操作保留在工作区,但是不会自动帮你重新暂存)
git stash drop
:删除保存列表里面最近保存的记录。后面加上 stash@{序号}可以删除指定的保存记录。
git stash clear
:删除保存列表里面所以的保存记录。
git stash 分支名 stash@{序号}
:修改了demo里面的内容之后使用 git stash
保存demo文件里面的修改,如果此时你修改了demo文件然后在使用git stash pop
或者git stash apply
恢复之前修改demo里的内容,那么此时可能会引发冲突。此时就可以使用此命令。这个命令会创建一个分支然后在创建的分支上把保存的记录恢复出来。
tips
:当你在master
分支上工作时你不想把已经修改的内容提交到master
分支上而想提交到feature
分支上,这时候可以使用git stash
把当前工作区和暂存区保存起来然后在切换到feature
分支上pop
或者apply
出来。这样你可以把在master
分支工作时修改的内容提交到feature
分支上。