最近遇到一个问题,事情是这样子的,刚刚接到客户说他的项目有问题,因而就打开本地的源码查看通过排查肯定了问题,因而就开始进行修正工做
将问题修复好准备提交到git的时候发现当前的分支是不对的,但问题是我已经在当前分支了做了大量修改,若是要切换分支则必须先要将修改过的文件先提交
那么如今问题来了:如何在不提交commit的状况下来切换分支呢?
最后经过查看Pro Git文档了解到Git中有一个stash功能能够实现
常常有这样的事情发生,当你正在进行项目中某一部分的工做,里面的东西处于一个比较杂乱的状态,而你想转到其余分支上进行一些工做。问题是,你不想提交进行了一半的工做,不然之后你没法回到这个工做点。解决这个问题的办法就是git stash
命令。html
“‘储藏”“能够获取你工做目录的中间状态——也就是你修改过的被追踪的文件和暂存的变动——并将它保存到一个未完结变动的堆栈中,随时能够从新应用。git
由于以前没有使用过此功能,特地作了个测试
首
先 先在test分支修改了test2.txt文件
修改完成后发现该修改不该该在test分支了因而将全部的更改先储藏(stash)起来
而后切换到相应的分支(新建了test2分支)并从stash中取出以前的修改
而后再test2分支中commit全部的修改
由于储藏会产生两个分支记录,因此提交历史看起来乱七八糟的,因此将以前的储藏分支删除(删除后干净多好)
完成,合并分支等操做

使用了stash的分支图
删除stash后的提交历史
参考: