当我们在使用git的时候,又是会有这种情况:当新的需求了的时候。我们需要为此需求新建一个分支,再次分支上进行修改,当经过测试,提交代码时,在将其合并到主分支,或生产分支上。

但是有时候也有失误的时候,忘记创建新的分支了,或者忘了切换分支了,在错误的分支上进行了开发。又或者你的需求已经开发了一些的,这时有个新的紧急需求来了,而你又不想把你的代码修改直接提交到仓库,这怎么办?

怎么办??别怕,有 git stash 命令。

那什么是 stash 哪?官方解释是“储藏”。其实stash区域就是一个缓存区,但是这个缓存区不同于add命令的缓存区。stash的缓存区是一个栈的结构,用来储存你暂时不想commit的代码修改,并且你的工作空间就会回到修改之前的状态。

另外,stash 是跨分支的,你在master 存入的修改可以应用于其他任何分支上,反之亦然。

并且,git stash 是存储已经纳入git体系的文件,新建的,但是还没有使用git add 命令处理的文件不会被 stash 。

说一下stash的主要命令:

一。git stash save "说明"

这是主要的存储命令,其实可以不写save 参数,直接 git stash 就可以,save 参数是为了加一个文字说明。当然,不太建议这么来,没有说明鬼知道记录的是什么内容。。。

二。 git stash list

查看存储栈的内容。显示的内容如下:

从这里可看出来,这是一个栈结构。最早进入的在最下面。

三。git stash pop, git stash apply stash@{0}

应用stash存储的内容,pop命令很直白了。弹栈命令,即将最上面的栈元素存储的内容用于当前工作空间,又将最上面的栈元素删除。

而apply命令只是将最上面的栈元素存储的内容用于当前工作空间,但是不删除栈元素。

四。git stash drop stas@{0}

删除指定的栈元素。这个很简单了,删了就完了,不会应用此栈元素的内容。

当然。git stash 还有其他的一些操作命令,但是以上者四个基本已经可以满足我们的需求了。

Have Fun !

最新文章

  1. Html --用简单的<hr>实现多样化分割效果
  2. Subsonic简单的语法整理
  3. angularjs的四大特征
  4. android 加载自定义图片并在图片上绘图
  5. java main函数
  6. (easy)LeetCode 228.Summary Ranges
  7. JS函数式编程【译】第二章总结
  8. PHP 中的超全局变量
  9. openwrt上opkg更新报错"opkg_download: Failed to download ............."
  10. HDU 5281 Senior's Gun
  11. SilkTest Q&A 3
  12. 如何用php开启企业微信开发的回调模式
  13. Druid数据库连接池源码分析
  14. Android View架构总结
  15. Wndows下Apache+php+Mysql环境的搭建及其涉及的知识(转)
  16. ReentrantLock源码分析
  17. 【Android】Android EditText 去除边框
  18. 20165336 实验一 Java开发环境的熟悉
  19. JavaScript的案例(数据校验,js轮播图,页面定时弹窗)
  20. sap gui 使用方法, sap logon

热门文章

  1. 已知X,Y独立,那么X^2与Y也独立
  2. Xamarin图表开发基础教程(6)OxyPlot框架
  3. filebeat获取nginx的access日志配置
  4. Nginx 配置 HTTPS SSL
  5. Legacy和UEFI,MBR和GPT的区别
  6. mongoDB杂项
  7. 最新 浩德钢圈java校招面经 (含整理过的面试题大全)
  8. python爬虫3之去哪儿网
  9. SpringBoot中的@ConfigurationProperties
  10. 学习数据结构Day3