假如现在的Bug你还没有解决,而上边又给你派了一个新的Bug,而这个Bug相比较现在正在苦思冥想的Bug比较容易解决。

你想先解决新的Bug,可是之前的Bug还没有解决完而不能提交。怎么办?

解决方法:在其他分支上另开炉灶解决。

首先你需要将此刻正在解决Bug的当前分支“储藏”起来。例假如此时正在你在当前分支dev上已进行了Bug修改但还未提交。

此时你想去解决刚派下来的另一个Bug。而你需要在master分支上去修复这个Bug,第一步就需要先切换到master 分支。当你执行 $ git checkout master 命令的时候,将提示出错:

error: Your local changes to the following files would be overwritten by checkout:
        readme.txt
Please commit your changes or stash them before you switch branches.

(请在切换分支之前提交您的更改或隐藏它们)

因为当前的分支dev 最初也是从master 分支上衍生出来的。而此时你要再从该分支上切换到其主分支。那么你需要先把该dev分支上的改动提交后才能切换,但是该dev分支上还没有完成全部的修改,你不想提交。那么此时你就要选择 stash 它们(你在当前分支上改动的却没有提交commit的内容)。

所以第二步,在当前分支上执行  $ git stash 命令。将当前分支存起来,id为 8528ea2 s

这时候再执行 $ git status 命令,显示没有东西需要提交,这个时候你就可以切换到master分支上了。

接着就可以在主分支master上创建并切换到新的分支去修复另一个Bug了。

那修改完那个Bug也提交后,就该回到dev 分支上去继续修改那个未完成的Bug。

执行  $ git checkout dev 切换到 dev 分支,这个时候执行 git status 命令仍旧显示没有东西需要提交。毕竟我们前边已经成功将dev上未提交的改动给“隐藏“了,这时,用  $ git stash list  命令去查看我们“存储”的列表。

会发现id 为  8528ea2 s 的储藏项目在列表中,我们需要将其恢复,有两个办法:

一、用 $ git stash apply 命令恢复,但是恢复后,stash内容并不删除,这时候再执行  $ git stash list 命令,id 为  8528ea2 s 的储藏项目还会在列表中,你需要用 $ git stash drop 来删除;

注意: 如果有一个分支上多个 stash,如果需要恢复指定的 stash ,可以在命令尾部加id,如  $ git stash apply stash@{0},同样删除指定 stash 项目则执行如 $ git stash drop stash@{1}  。

二、用  $ git stash pop  命令,恢复的同时把 stash 存储列表的内容也删了。这时候再执行  $ git stash list 命令,id 为  8528ea2 s 的储藏项目不会在列表中。

此时再查看 $ cat <filename>  会发现之前的改动还存在,且执行 git status 就会继续显示该分支上有改动未提交。
---------------------
作者:Ashe And Wine
来源:CSDN
原文:https://blog.csdn.net/asheandwine/article/details/79003270
版权声明:本文为博主原创文章,转载请附上博文链接!

Git如何在不提交当前分支的情况下切换到其它分支进行操作——git stash的更多相关文章

  1. GIT 如何在不提交Commit的情况下切换分支

    最近遇到一个问题,事情是这样子的,刚刚接到客户说他的项目有问题,于是就打开本地的源码查看经过排查确定了问题,于是就开始进行修正工作 将问题修复好准备提交到git的时候发现当前的分支是不对的,但问题是我 ...

  2. git 如何更改某个提交内容/如何把当前改动追加到某次commit上? git rebase

    原文地址        http://www.jianshu.com/p/8d666830e826 [自己总结] 0, git diff git diff a b 是以a为基准,把b和a的区别展示出来 ...

  3. 在不切换分支的情况下,如何在all branches中快速查看指定分支,相对其他分支的状态

    假设需要查看的分支为temp 1.git show temp 通过这个可以拿到commit id 2.查看TortoiseGit的日志,左下角勾选所有分支 3.在日志界面搜索commit id,然后右 ...

  4. git恢复到上次提交

    4个区 5种状态 未修改(Origin) 已修改(Modified) 已暂存(Staged) 已提交(Committed) 已推送(Pushed) 检查修改 已修改,未暂存(检查工作区与暂存区间的差异 ...

  5. git 学习笔记 —— 保留/丢弃当前分支修改并切换至其他分支

    笔者在本地终端进行 git 工作目录的相关处理时,遇到由于某种情况需要使用 git checkout 命令切换到其他分支的情景.此时,若已经对当前分支做了一定的修改,则直接切换分支时 git 会提示错 ...

  6. 使用git处理github中提交有冲突的pull request

    前言: 为什么要写这篇文章,因为前段时间有一个开源的github中的项目有一个朋友提交了一个pr看了下是帮忙优化了下代码(十分感谢这位网友).但是他提交的pr刚好和我的项目有许多的冲突导致无法自动合并 ...

  7. 看完这篇 你就能完全操作git 远程分支的增、删、改、查了

    最近项目中又用到了git所以在此总结一番,这篇主要针对的是怎么创建远程分支,如何删除远程分支. 首先,如何创建远程分支.将一系列前期准备工作准备完成后(创建\添加ssh): 在终端键入 git bra ...

  8. git将一个分支的内容替换为另一分支内容

    假设我想将我的linux分支内容替换master分支的内容. # 切换到master分支 git checkout master # 再将本地的master分支重置成linux git reset - ...

  9. git与eclipse集成之创建及切换个人本地分支

    创建个人本地特性分支,并进行编码 弹出选择分支的窗口,选择要切换的个人特性分支(备注:根据远程个人特性分支创建本地个人特性分支) 点击OK,Branch name:分支名称与远程分支名称相同,不需要修 ...

随机推荐

  1. web(六)css的基本语法、取值与单位

    css语法包含如下部分: 选择器:用于选择需要添加样式的元素. 属性(property):样式的属性名称,例如color代表颜色. 取值与单位:属性对应的值以及单位. 语法规则:css的某些固定语法. ...

  2. Gym - 100796I:Shell Game(圆台的最大内接球半径)

    pro:如题.给定上圆半径r,下圆半径R,高度h.问最大内接球半径. sol:由对称性,我们放到二维来看,即给这么一个梯形,问最大内接圆半径. 证明:如果是一个三角形的内接圆C,他内切于三边. 现在这 ...

  3. python while循环案例

    1.while循环语句基本结构? while condition: loop body 2.利用while语句写出猜大小的游戏: 设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的 ...

  4. kali安装Google浏览器之后的问题

    kali中,在安装完Google浏览器后会出现点击图标却打不开的问题,解决方式如下: 2019-04-10  09:46:00

  5. Deploy Descriptor

    之前我们在编写HelloWorld项目时,在WEB-INF目录下创建了一个web.xml文件.这个文件叫做部署描述文件,每个Servlet应用程序的部署描述文件的名称都是web.xml.Web容器在启 ...

  6. windows tensorboard http://0.0.0.0:6006 无法访问 解决方法 - using chrome and localhost as ip

    启动命令: tensorboard --logdir="tensorboard" 启动后显示 Starting TensorBoard b'47' at http://0.0.0. ...

  7. CodeForce 517 Div 2. B Curiosity Has No Limits

    http://codeforces.com/contest/1072/problem/B B. Curiosity Has No Limits time limit per test 1 second ...

  8. 使用swig工具为go语言与c++进行交互

    环境: centos_7_x86_x64,gcc_4.8.5 一.安装swig 1. 安装pcre yum install -y pcre pcre-tools pcre-devel 2. 安装yac ...

  9. 什么是web前端开发?

    Web前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript/Flash等各种Web技术进行客户端产品的开发.完成客户端程序(也就是浏览器端)的开发,开发JavaScript以及F ...

  10. Flutter 学习资料

    Flutter 学习资料: 学习资料 网址 Flutter 中文网 https://flutterchina.club/ <Flutter实战>电子书 https://book.flutt ...