假如现在的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. python:3种爬虫的优缺点

                                                                 性能对比            爬取方法            性    能 ...

  2. Python 判断是否可以转化为浮点数及其他数字类型

    Python中出现ValueError: could not convert string to float:应该怎么处理 import sys import math # 判断是否为浮点数 def ...

  3. erlang工作总结

    总结下自己在做erlang的经验 1.不管什么样的情况下,一定要关注好函数的返回值再来使用,不知道返回值盲目的使用的话,不仅不能达到目标,而且不存在代码/报错提醒.得不偿失. 2.构思好自己的想法,定 ...

  4. 20155219付颖卓《网络对抗》逆向及Bof基础

    实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShe ...

  5. jq实时监测输入框内容改变

    $(document) .on('input propertychange','#telInput',function (e) { if (e.type === "input" | ...

  6. .Net调用Java带验证的WebService解决方法

    最近遇到了一个问题,需要通过验证用户名.密码去调用对方Java给出的WebService接口. 搜索了很多资料,没想到最终很简单就完了.... (捂脸 第一步:添加web引用 第二步:进行验证,并完成 ...

  7. GitHub命令更新

    github命令 1.git clone url 从远程master拉代码 2.进入目录 3.拉下来之后,git branch,查看本地分支是否为master,不是的话git checkout mas ...

  8. WinFormEx

    项目地址 :  https://github.com/kelin-xycs/WinFormEx WinFormEx 一个 用 C# 写的 WinForm 扩展库 , 用于改善 WinForm 的 界面 ...

  9. OpenLDAP主从

    yum -y install compat-openldap必须得安装这个   1:在主上       备份         cp /etc/openldap/slapd.conf /etc/open ...

  10. 好久没考虑过的 sql 注入

    很多年没考虑 sql 注入了,毕业以后 使用mybatis #{ 参数的 语法 },这个 语法已经 做了防止 sql 注入的处理 . 看到同事写的 ${ 参数 },突然 想到这个问题 . 下面聊聊 s ...