git stash

  • 如果当前分支还有任务没有做完,也不想提交,但此时需要切换或者创建其它分支,就可以使用stash将当前分支的所有修改(包括暂存区)先储藏起来;然后就可以切换到其它分支
  • 在其它分支工作完成之后,首先切换回原来的分支,然后使用git stash list命令查看
  • 可以使用git stash apply <stash number>恢复之前储藏的工作现场,再使用git stash drop <stash number>删除掉储藏的内容
  • 也可以直接用git stash pop恢复并删除内容

1.保存

$ git stash
解释:会把所有未提交的修改(包括暂存的和非暂存的)都保存起来
$ git stash save "messeag"
解释:会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,并增加说明
$ git stash save -u "messeag"
解释:会把所有未提交的修改(包括1.暂存的;2.非暂存的;3.新加入的代码文件:untracked files)都保存起来,并增加说明
$ git stash save -a "messeag"   不建议用
解释:会把所有未提交的修改(包括1.暂存的;2.非暂存的;3.新加入的代码文;4.其他隐藏文件)都保存起来,并增加说明;不建议用

2.重新应用缓存的stash

$ git stash pop
解释:这个指令将缓存堆栈中的第一个stash删除,并将对应修改应用到当前的工作目录下
$ git stash apply
解释:将缓存堆栈中的stash多次应用到工作目录中,但并不删除stash拷贝

3.查看stash

$ git stash list
解释:在使用git stash apply命令时可以通过名字指定使用哪个stash,默认使用最近的stash(即stash@{0})。

4.移除

$ git stash drop stash@{0}
解释:删除指定的stash
$ git stash clear
解释:删除所有缓存的stash

5 查看指定stash的diff

$ git stash show
解释:查看指定stash的diff,后面可以跟着stash名字
$ git stash show -p
解释:在该命令后面添加-p或--patch可以查看特定stash的全部diff

6 stash指定的文件

1.多个文件
git stash push <file1> <file2> <file3> [file4 ...]
2.单个文件
git stash push -m "message" file_path
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐