Git如何在不提交当前分支的情况下切换到其它分支进行操作——git stash
假如现在的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的更多相关文章
- GIT 如何在不提交Commit的情况下切换分支
最近遇到一个问题,事情是这样子的,刚刚接到客户说他的项目有问题,于是就打开本地的源码查看经过排查确定了问题,于是就开始进行修正工作 将问题修复好准备提交到git的时候发现当前的分支是不对的,但问题是我 ...
- git 如何更改某个提交内容/如何把当前改动追加到某次commit上? git rebase
原文地址 http://www.jianshu.com/p/8d666830e826 [自己总结] 0, git diff git diff a b 是以a为基准,把b和a的区别展示出来 ...
- 在不切换分支的情况下,如何在all branches中快速查看指定分支,相对其他分支的状态
假设需要查看的分支为temp 1.git show temp 通过这个可以拿到commit id 2.查看TortoiseGit的日志,左下角勾选所有分支 3.在日志界面搜索commit id,然后右 ...
- git恢复到上次提交
4个区 5种状态 未修改(Origin) 已修改(Modified) 已暂存(Staged) 已提交(Committed) 已推送(Pushed) 检查修改 已修改,未暂存(检查工作区与暂存区间的差异 ...
- git 学习笔记 —— 保留/丢弃当前分支修改并切换至其他分支
笔者在本地终端进行 git 工作目录的相关处理时,遇到由于某种情况需要使用 git checkout 命令切换到其他分支的情景.此时,若已经对当前分支做了一定的修改,则直接切换分支时 git 会提示错 ...
- 使用git处理github中提交有冲突的pull request
前言: 为什么要写这篇文章,因为前段时间有一个开源的github中的项目有一个朋友提交了一个pr看了下是帮忙优化了下代码(十分感谢这位网友).但是他提交的pr刚好和我的项目有许多的冲突导致无法自动合并 ...
- 看完这篇 你就能完全操作git 远程分支的增、删、改、查了
最近项目中又用到了git所以在此总结一番,这篇主要针对的是怎么创建远程分支,如何删除远程分支. 首先,如何创建远程分支.将一系列前期准备工作准备完成后(创建\添加ssh): 在终端键入 git bra ...
- git将一个分支的内容替换为另一分支内容
假设我想将我的linux分支内容替换master分支的内容. # 切换到master分支 git checkout master # 再将本地的master分支重置成linux git reset - ...
- git与eclipse集成之创建及切换个人本地分支
创建个人本地特性分支,并进行编码 弹出选择分支的窗口,选择要切换的个人特性分支(备注:根据远程个人特性分支创建本地个人特性分支) 点击OK,Branch name:分支名称与远程分支名称相同,不需要修 ...
随机推荐
- 1) 嵌套的 div ,或者 ul ol .li 阻止冒泡 ,特别是 对应onclick="test(event)" 通过传递event 阻止 冒泡. cancelBubble , stopPropagation
1 .html 结构: <ul class="ul_2 hide" data-first="5"> <li class="li_2& ...
- FCC JS基础算法题(2):Check for Palindromes(检查回文字符串)
题目描述: 如果给定的字符串是回文,返回true,反之,返回false.如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文).注意你需要去掉 ...
- Selenium·自动化基础
date:2018505+2018506 day05+06mor 一.安装环境 1.cmd→pip install selenium 2.将浏览器驱动放入X:\Python27下(如chromedri ...
- java和js中JSONObject,JSONArray,Map,String之间转换
--------------------------------------------------Java中--------------------------------------------- ...
- IDEA将web项目打成war包
非Maven项目打包方式 按ctrl+滚动鼠标滚轮就能放大浏览器看图片了.或者将图片拖到新窗口打开. 然后点击OK,然后build一下.然后去classes文件夹下面找就能找到打成war包的项目 ...
- AWS Redshift typical error and potential root cause:
Full join issue: When use full join, the below join condition should not occur: 1, OR statement2, an ...
- 成功的拆开了SELECT里JOIN个SELECT是啥
SELECT * FROM table JOIN table ON a=b ----------------------- JOIN (SELECT* FROM table JOIN table ON ...
- c# 号码记录,车友
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- py-day3-3 python 函数的作用域
def test1(): print('in the test1') def test(): print('in the test') return test1 print(test) res = t ...
- 前段开发神奇webstorm安装注册和汉化
软件下载地址: http://www.jetbrains.com/webstorm/ 安装完后退出. 重新打开,进行激活 这里我们选择“license server”然后输入:http://idea. ...