最近在使用Git管理项目工程的时候,遇到了很多问题,也学习到了很多关于Git常见使用的技巧,下面就其中关于Git Stash的用法和大家分享下。
首先,简单介绍下Git Stash命令的用法,详细的用法在man文档中有相关介绍,下面我来说明常见的使用。
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
关于Git Stash的详细解释,适用场合,这里做一个说明:

使用git的时候,我们往往使用branch解决任务切换问题,例如,我们往往会建一个自己的分支去修改和调试代码, 如果别人或者自己发现原有的分支上有个不得不修改的bug,我们往往会把完成一半的代码 commit提交到本地仓库,然后切换分支去修改bug,改好之后再切换回来。这样的话往往log上会有大量不必要的记录。其实如果我们不想提交完成一半或者不完善的代码,但是却不得不去修改一个紧急Bug,那么使用'git stash'就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工作区间和上一次提交的内容是完全一样的,所以你可以放心的修 Bug,等到修完Bug,提交到服务器上后,再使用'git stash apply'将以前一半的工作应用回来。也许有的人会说,那我可不可以多次将未提交的代码压入到栈中?答案是可以的。当你多次使用'git stash'命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑,'git stash list'命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,例如使用'git stash apply stash@{1}'就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用'git stash clear'来将栈清空。
在这里顺便提下git format-patch -n , n是具体某个数字, 例如 'git format-patch -1' 这时便会根据log生成一个对应的补丁,如果 'git format-patch -2' 那么便会生成2个补丁,当然前提是你的log上有至少有两个记录。

看过上面的信息,就可以知道使用场合了:当前工作区内容已被修改,但是并未完成。这时Boss来了,说前面的分支上面有一个Bug,需要立即修复。可是我又不想提交目前的修改,因为修改没有完成。但是,不提交的话,又没有办法checkout到前面的分支。此时用Git Stash就相当于备份工作区了。然后在Checkout过去修改,就能够达到保存当前工作区,并及时恢复的作用

原文:http://www.cppblog.com/deercoder/archive/2011/11/13/160007.aspx

git stash的用法相关推荐

  1. git stash 的用法

    1.引言 我们有时会遇到这样的情况,正在dev分支开发新功能,做到一半时有人过来反馈一个bug,让马上解决,但是新功能做到了一半你又不想提交,这时就可以使用git stash命令先把当前进度(工作区和 ...

  2. Git stash 的用法,将暂存区的内容缓存并移除,解决切换分支前的内容缓存问题

    git stash 如果当前分支还有任务没有做完,也不想提交,但此时需要切换或者创建其它分支,就可以使用stash将当前分支的所有修改(包括暂存区)先储藏起来:然后就可以切换到其它分支 在其它分支工作 ...

  3. git stash用法

    原理:git stash 这个命令将当前的工作状态保存到 git 栈,在需要的时候再恢复. 写在前面:从栈中用的时候千万别搞错了!!! 使用场景:多个需求同时开发的时候,需要不同的分支,在一个需求没开 ...

  4. git stash用法总结

    git stash命令的作用就是将目前还不想提交的但是已经修改的内容进行保存,后续可以在任何分支上进行恢复. git stash命令的作用范围包括工作区和暂存区中的内容,也就是说git add但没有g ...

  5. git stash命令的用法

    stash的字面意思:隐藏,储藏 当我们以多人协同工作的方式基于同一个github仓库进行开发时,免不了遇到多人同时在本机对同一文件进行编辑的情况出现. 看一个具体的场景,当我使用git pull时, ...

  6. git stash用法详解

    文章转载自:https://blog.csdn.net/stone_yw/article/details/80795669 应用场景: 当正在dev分支上开发某个项目,这时项目中出现一个bug,需要紧 ...

  7. Git - stash(暂存区) 用法

    使用场景 功能开发一半,改了个BUG需要提交,此时就需要把开发功能的改动代码暂存起来,将BUG修改内容进行提交并推送,推送后再恢复原有改动 执行流程 先git commit要提交的内容 将剩下内容通过 ...

  8. git stash 个人理解

    link git stash (git 储藏)用于以下场景: 1.发现一个类是多余的,想删掉它担心之后会用到它,想保存但又不想增加一个脏的提交,这时候可以考虑使用git stash; 2.使用git的 ...

  9. git stash参数介绍

    git stash 用于暂存工作区未提交的内容,便于在同时开发多个分支需要切换时保存当前分支进度. list 语法 git stash list [<options>] ,与git log ...

最新文章

  1. 基于Python语言Hamcrest断言的使用
  2. Jupyter notebook 的使用
  3. 一组图诠释CNN及RNN的区别
  4. 02- Image Terminology
  5. boost::multi_array模块实现创建负步幅视图的小测试
  6. Linux 命令之 cat -- 在终端设备上显示文件内容(查看文件内容/浏览文件内容)
  7. Linux 中设置环境变量的三种方法
  8. Linux 文件系统相关的命令
  9. 计算机英语摘要,英语翻译摘要地理信息系统 (GIS,Geographic Information System) 是一种基于计算机的工具...
  10. java多线程异步调用别的系统接口代码_60 多个实例讲解,彻底搞懂 Java 多线程!
  11. android内存泄漏原因分析,Android 内存泄漏案例分析总结(Handler)
  12. 谷歌浏览器加载外部 DLL 文件 关于chrome上的网银安全控件开发技术(chrome 调用本地dll)
  13. linux系统声音管理,Mplayer 音量控制详解
  14. 借助Net-Speeder对服务器进行优化
  15. [高等数学]--曲率,曲率半径-
  16. markdown、html转义特殊字符代码大全
  17. 图片太大怎么改小kb?简单的图片压缩方法分享
  18. cad lisp 二次抛物线_cad画二次抛物线
  19. Kaldi 入门使用教程
  20. ios 隐私政策网址(URL)

热门文章

  1. 从0开始学习 GitHub 系列之「初识 GitHub」
  2. 第二章 反向传播算法如何工作的?
  3. Python爬虫实战(1):爬取糗事百科段子
  4. 超过100本的linux免费书籍
  5. 云计算平台管理的三大利器Nagios、Ganglia和Splunk
  6. 【python图像处理】python绘制灰度直方图
  7. 重温Android四大组件(一)—Activity的生命周期
  8. 嘿嘿,JAVA里第一次运行单元测试成功,立存
  9. 【转】做产品VS做项目
  10. 纯JavaScript实现弹出选择第几个单选按钮