git stash 使用
git stash 的使用
1 背景
使用git 协同开发过程中我们需要经常切换分支,比如正在某一个分支下做需求时候,在该需求还未完成时就需要在另外一个分支下进行问题的修改,如果直接 checkout 切换分支会有冲突,会导致切换不成功,但是又不想将当前的做的修改复原,于是想到将当前的改动暂时保存下来,然后切换到另外一个分支去修改问题,当问题修改完成了之后将分支切换回来,然后再将之前保存的改动释放即可继续对需求进行开发了。
2 使用
2.1 存储当前分支下的所有改动(git stash)
如在当前的开发分支,修改了一些配置项进行测试的时候,忽然有个紧急的bug要修复,这个时候就需要利用git stash命令。
如图上所示 ,使用 git status 看到当前修改了配置文件,若要将该修改保存下来,直接使用 git stash 命令就可以了。如果想要 给当前压栈存储的修改添加说明信息(如果没有指定信息,则说明信息为最新的 commit 信息),使用 git stash -m “存储的信息”,引号内为该次存储的命名。如下图所示:
2.2 查看所有的存储列表(git stash list )
如上图所示,stash@{0} 和 stash@{1} 分别是两次保存的修改,stash@{0} 是最新的一次提交。
2.3 git stash pop
释放最近一次保存的内容,并且将该次保存的内容出栈(即将栈顶出栈,释放最近一次保存的内容后将该次保存内容删除)(git stash pop) 如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
如上图所示,将最近一次存储释放之后,使用 git stash list 查看存储列表,已经由原来的两条存储变成了一条。
2.4 应用某一次的存储内容,但不删除改内容(即该存储的内容还是存储在栈内 git apply)
例如 : git stash apply stash@{0}
就是将存储号为 stash@{0} 的存储内容释放出来,但是该存储还是被存储在栈内,没有被删除。
2.5查看某一个压栈修改了哪几个文件(git stash show stash@ )具体修改加上-p参数
当存储的修改过多时,你可能会忘记某次存储修改了什么文件,想要查看某次存储修改了哪些文件可以使用 git stash show stash@{0} 命令,stash@{0} 为最近存储的修改,想要看其他的存储只需要改 stash@{0} 的数字,如 stash@{5}. 如上图我是先使用 git stash list 查看存储列表,然后使用 git stash show stash@{0} 命令查看第一个修改,可以看到在最近的一次修改存储中我只修改了一个文件 application.properties。










