Git--stash

 参考

https://www.cnblogs.com/tocy/p/git-stash-reference.html

 

保存当前的工作内容,而不需要做提交操作.

 

应用场景

有一个或一些的类该次提交不需要,但觉得以后可能会有用,可以把这些类stash到本地.

当前正在修改时,需要切换到其他分支或者在当前分支修改一些bug时,但又不想或不能把当前的改动提交,则可以把正在修改的内容stash到本地.

等等等等..

 

用法

git stash

 git stash 会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。

执行git stash后,暂存和非暂存区的内容都被stash到本地,而未纳入git管理的文件并没有被stash到本地.

再来看git当前状态

暂存区和非暂存区的内容已经没了,被stash到本地了.只剩下未纳入git管理的文件,也就是未被stash到本地的文件.

 

git stash list

查看现有的stash

 

git stash save "message"

给stash添加提交消息

先将上面的Pig文件添加到暂存区

然后git stash save

查看

这样就知道stash的大概内容是什么了,清晰直观.

而第一次stash的内容没有附加描述信息,很容易忘记stash的内容是什么.当然可以查看里面的内容,这个和提交代码git commit -m "message"基本上差不多.

 

git stash apply / git stash pop

因为各种原因而被stash到本地的代码怎么恢复呢,这里就可以用到 git stash apply 或者 git stash pop 

stash的过程,差不多和操作栈的过程差不多.

而apply和pop的差别,就是pop在恢复最近的stash内容的同时会删除该stash记录.而apply不会.

 git stash apply 

 git stash pop 

 

之所以说类似于操作栈,是因为它又不同于栈的先进后出,因为它可以有选择的apply或者pop.

 

git stash drop

删除stash记录

删除指定的stash记录

 

git stash show

查看stash的内容

 git stash show -p 或者 git stash show --patch 可以查看特定stash的全部diff.

查看指定的stash内容

 

git stash branch

如果在stash之后修改的内容与stash的内容有冲突

发生冲突的情况,被pop的stash依然存在.

这时候你需要去解决冲突.

 

 如果你只是想继续上次的工作不想被这些冲突所折磨的话,则可以使用 git stash branch 在新的分支上继续之前的工作.

当然,stash之后记录随之被删除.

 

posted @ 2019-01-16 11:17  MicroCat  阅读(282)  评论(0编辑  收藏  举报