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

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

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

 

使用git stash
有时候写了一半的JAVA代码,都还不能编译经过的,就被叫去改另外一个分支的bug了。数据库

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

git stash
或者.net

git stash save “修改的信息"
这样之后你的代码就回到本身上一个commit了,直接git stash的话git stash的栈会直接给你一个hash值做为版本的说明,若是用git stash save “修改的信息”,git stash的栈会把你填写的“修改的信息”做为版本的说明。命令行

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

git stash pop
或者blog

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}
这时候你搁置的代码就回来了。

原文地址:http://www.tonitech.com/2344.html

这是一个很是经常使用的场景,我正在一个分支上修改功能,而后遇到一个bug须要解决,我得切换到其余分支来修改这个bug,可是目前的功能还在开发阶段,还不成熟,还不想执行add和commit,执行这两个后就会在历史中有记录,并不想这样作,因而就有了git stash功能,把我当前的修改暂时保存起来,而后回来的时候再取出来继续开发功能.

git stash是针对整个git工程来进行保存的,也就是说区分不了branch.好比我在a分支git stash save "sss"暂存了一个修改,那么我切换到b分支,我使用git stash pop 就能把在a分支保存的"sss"这个修改同步到了b分支上.因此当咱们须要在不一样的分支上取出不一样的分支上保存的修改,那么就用到了git stash list,这个命令能够把在全部分支上暂存的信息显示出来,而后咱们经过 git stash apply stash@{0} 来选择恢复哪一个暂存,stash@{0}这个会在list中列出来.

而咱们使用Android studio就太方便了.

在当前工程的任何一个文件中,点击右键,选择git--> 选择repository ---> 里面会列出stash changes和unstash changes命令,一个是保存修改的命令,一个是恢复修改的命令.

stash changes会让咱们给要保存的内容输入一个message,这个和git stash save ""是同样的

而 unstash changes会列表咱们以前保存过的list

相关文章
相关标签/搜索