git stash用于将当前工作区的修改暂存起来,就想堆栈一样,可以随时将某一次缓存的修改再重新应用到当前工作区。正确的使用可以极大的提高工作效率。
eg:
1.先初始一个测试git仓
随便一个目录,进入操作:
$ git init
创建一个文件:
$ touch test
$ git add .(add后跟的.表示“把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件”)
$ git commit -m "先将创建的文件add"
2.暂存当前修改内容(git stash),必须把修改的文件git add后才可以git stash
现在test中插入文字,如下:
$ vim test(输入i开始编辑,Esc退出编辑,:wq保存退出文本。注意输入法要在英文状态,不然不识别会闪屏)
成功后,考虑修改记录。但修改后发现不合适,想回退比较麻烦,此时git stash应用场景出现:将修改暂存起来
3.弹出修改内容(git stash pop)
重新编辑后的内容,不合适需要回退,可以用git stash pop命令,弹出刚才的内容(注意先用git checkout . 清空工作区)
注意:git stash pop弹出成功后,暂存列表里面就没有了,如果当前工作区不干净,弹出时有冲突,则暂存列表会继续保留修改
4.可以保持多个修改(针对需要保存的文件进行同样的操作)
eg:对文本,开始第一次输入尝试,保存后录入“第二次输入尝试”,再保存进行“第三次输入尝试”
5.查看保存的内容列表(git stash list)
eg:保存了文本1,文本2操作。可以通过git stash list查看保存内容列表
stash@{0}和stash@{1},需要使用git stash show stash@{X}命令来查看,其中‘X’表示列表号;
stash@{0}对应“文本2”的修改, stash@{1}对应“文本1”的修改
入栈的修改,其代号为0,循环命名。