码迷,mamicode.com
首页 > 其他好文 > 详细

git切换到别的分支,要暂时保存当前分支的修改(不想进行add 和commit)的方法 git stash

时间:2019-03-30 01:20:14      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:使用   Fix   strong   这一   注意   版本   lis   兼容   apply   

git 切换分支时会把未add或未commit的内容带过去, 这一点值得注意。

       为什么呢?

       因为未add的内容不属于任何一个分支, 未commit的内容也不属于任何一个分支。 也就是说,对于所有分支而言, 工作区和暂存区是公共的。

       要想在分支间切换, 又不想又上述影响, 怎么办呢?


git切换分支保存修改的代码的方法

最近在一个原有的项目上做一次非常大的改版,底层的数据库做了很大的变化,跟现在的版本无法兼容。现在的工作除了开发最新的版本之外还要对原来的版本做例行的维护,修修补补。于是有了在两个分支之间游走切换的问题,最新改版的代码在分支new上,旧版本的代码在分支old上,我在new上开发了一半,忽然有人给了我一个改进的需求,于是我要切换回old去修改代码。在这个场景下,我摸索了三种方法:
及时commit代码

在new分支上把已经开发完成的部分代码commit掉,不push,然后切换到old分支修改代码,做完了commit,所有分支互不影响,这是一个理想的方法。

 
使用git stash

有时候写了一半的JAVA代码,都还不能编译通过的,就被叫去改另一个分支的bug了。

在new分支上的时候在命令行输入:

git stash

或者

git stash save “修改的信息"

这样以后你的代码就回到自己上一个commit了,直接git stash的话git stash的栈会直接给你一个hash值作为版本的说明,如果用git stash save “修改的信息”,git stash的栈会把你填写的“修改的信息”作为版本的说明。

接下来你回到old分支修改代码完成,你又再回到new分支,输入:

git stash pop

或者

git stash list

git stash apply stash@{0}

就可以回到保存的版本了。git stash pop的作用是将git stash栈中最后一个版本取出来,git stash apply stash@{0}的作用是可以指定栈中的一个版本,通过git stash list可以看到所有的版本信息:

stash@{0}: On order-master-bugfix: 22222

stash@{1}: On order-master-bugfix: 22222

然后你可以选择一个你需要的版本执行:

git stash apply stash@{0}

这时候你搁置的代码就回来了。

git切换到别的分支,要暂时保存当前分支的修改(不想进行add 和commit)的方法 git stash

标签:使用   Fix   strong   这一   注意   版本   lis   兼容   apply   

原文地址:https://www.cnblogs.com/imike/p/10624856.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!