git stash 常用三种模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git stash 常用三种模式相关的知识,希望对你有一定的参考价值。

参考技术A git stash (暂存当前工作区,仅暂存当亲啊git track的文件,最常用)

git stash --include-untracked (当本地某些untracked的文件和remote origin里的同名文件冲突时,会用到这个模式去暂存)

git stash --all  (前两个命令的并集:which stashes all files, including untracked and ignored files. 一般用不到)

Ref: https://stackoverflow.com/questions/835501/how-do-you-stash-an-untracked-file

git stash

git stash save

git stash list

git stash show

git stash apply stash@{0} //0为序号,

git stash pop stash@{0}

git stash drop stash@{0} :丢弃stash@{$num}存储,从列表中删除这个存储

git stash clear删除所有缓存的stash

 


 

 

例如, 当前处于master分支,你更改某个文件a, 但是并没有执行git add ,git commit。

然后,执行git stash save "changed a",

则你对a文件的修改则被保存了stash stack. 这时候,执行git status可以看到工作区、暂存区都是干净的,于是乎你可以切换分支了。

 

git stash list 可以现实出你stash的记录。

$ git stash list
stash@{0}: On master: 0501

git stash show 可以提示你的stash的具体内容;

$ git stash show stash@{0}
 file1.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

git stash apply stash@{0}  将第0条stash中的内容回复到当前分支! 可以跨分支。也可以使用git stash pop stash@{0}, 但是用pop会导致stash stack中的该条记录被同时删除了,即git stash list命令中不会显示了!

 


 

 

Note1:

新增的没有被add的文件,直接执行stash是不会被存储的:

如果你新增加了一个文件,然后,执行git stash save "xxx", 会被提示:No local changes to save;

执行git add该文件之后,在执行git stash save "xxx"则有效了。

 

 Note2:

git stash save 与git stash push 的区别:

https://www.softwhy.com/article-8630-1.html


 

Ref:

https://git-scm.com/docs/git-stash

 

以上是关于git stash 常用三种模式的主要内容,如果未能解决你的问题,请参考以下文章

git常用命令

git常用命令记录

gitGit 工具 - 储藏(Stashing)git fetch/pull

jenkins构建任务常用的三种模式

jenkins构建任务常用的三种模式

git 解决本地冲突+git常用命令