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 常用三种模式的主要内容,如果未能解决你的问题,请参考以下文章