git stash 缓存本地修改 简介
当我们在使用git的时候,又是会有这种情况:当新的需求了的时候。我们需要为此需求新建一个分支,再次分支上进行修改,当经过测试,提交代码时,在将其合并到主分支,或生产分支上。
但是有时候也有失误的时候,忘记创建新的分支了,或者忘了切换分支了,在错误的分支上进行了开发。又或者你的需求已经开发了一些的,这时有个新的紧急需求来了,而你又不想把你的代码修改直接提交到仓库,这怎么办?
怎么办??别怕,有 git stash 命令。
那什么是 stash 哪?官方解释是“储藏”。其实stash区域就是一个缓存区,但是这个缓存区不同于add命令的缓存区。stash的缓存区是一个栈的结构,用来储存你暂时不想commit的代码修改,并且你的工作空间就会回到修改之前的状态。
另外,stash 是跨分支的,你在master 存入的修改可以应用于其他任何分支上,反之亦然。
并且,git stash 是存储已经纳入git体系的文件,新建的,但是还没有使用git add 命令处理的文件不会被 stash 。
说一下stash的主要命令:
一。git stash save "说明"
这是主要的存储命令,其实可以不写save 参数,直接 git stash 就可以,save 参数是为了加一个文字说明。当然,不太建议这么来,没有说明鬼知道记录的是什么内容。。。
二。 git stash list
查看存储栈的内容。显示的内容如下:
从这里可看出来,这是一个栈结构。最早进入的在最下面。
三。git stash pop, git stash apply stash@{0}
应用stash存储的内容,pop命令很直白了。弹栈命令,即将最上面的栈元素存储的内容用于当前工作空间,又将最上面的栈元素删除。
而apply命令只是将最上面的栈元素存储的内容用于当前工作空间,但是不删除栈元素。
四。git stash drop stas@{0}
删除指定的栈元素。这个很简单了,删了就完了,不会应用此栈元素的内容。
当然。git stash 还有其他的一些操作命令,但是以上者四个基本已经可以满足我们的需求了。
Have Fun !