当我们在使用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 !

git stash 缓存本地修改 简介的更多相关文章

  1. git pull与本地修改冲突

    1.先将本地修改存储起来 $ git stash 这样本地的所有修改就都被暂时存储起来 . $ git stash list                 可以看到保存的信息: git stash暂 ...

  2. git 强制放弃本地修改(新增、删除文件)【转】

    本文转载自:https://blog.csdn.net/u012672646/article/details/56676804 本地修改了一些文件,其中包含修改.新增.删除的,不需要了想要丢弃,于是做 ...

  3. git 强制放弃本地修改(新增、删除文件)

    本地修改了一些文件,其中包含修改.新增.删除的. 不需要了,想要丢弃,于是做了git check -- .操作,但是只放弃了修改的文件,新增和删除的仍然没有恢复. 于是百度了下,使用如下命令: git ...

  4. git pull 放弃本地修改, 全部使用远端代码

    git强制覆盖:    git fetch --all    git reset --hard origin/master    git pull git强制覆盖本地命令(单条执行):    git ...

  5. git 强制取消本地修改

    本地的项目中修改不做保存操作,可以用到Git pull的强制覆盖,具体代码如下: git fetch --allgit reset --hard origin/master git fetch 指令是 ...

  6. git 克隆 提交本地修改到远程方法

    最近一个项目,提交总报错 按照下面的流程就ok了 $ git clone $ git init $ cd shop $ git branch -al //查看所有分支 $ git pull origi ...

  7. Git命令----放弃本地修改使用服务器上的代码

    git reset --hard FETCH_HEAD FETCH_HEAD表示上一次成功git pull之后形成的commit点.

  8. git pull时的冲突解决方式; git stash; git fetch

    git fetch指令: https://www.yiibai.com/git/git_pull.html 发现远端有更新,git pull时,如果你本地分支修改了东西,导致git pull有冲突,失 ...

  9. git<撤销本地修改与回退版本>

    1. 使用 git checkout 撤销本地修改 即放弃对本地已修改但尚未提交的文件的修改,还原其到未修改前的状态. 注意: 已 add/ commit 的文件不适用个方法,应该用本文提到的第二种方 ...

随机推荐

  1. 利用art.template模仿VUE 一次渲染多个模版

    TypeScript代码 import template = require('art-template/lib/template-web'); interface TemplateBindConfi ...

  2. 【转载】 tensorflow的单层静态与动态RNN比较

    原文地址: https://www.jianshu.com/p/1b1ea45fab47 yanghedada -------------------------------------------- ...

  3. python中的捕获异常、异常跟踪

    # 捕获异常,打印异常信息 try: 1/0 except Exception as e: print(e) 输出结果是integer division or modulo by zero,只知道是报 ...

  4. gdb命名记录

    gdb常用命令 显示类 info locals 显示当前局部变量 info args 显示当前函数的参数 info sharedlibrary 显示当前程序依赖的动态库 ptype val 打印变量类 ...

  5. SQL Server导入Excel文件报错

    目录 文本被截断,或者一个或多个字符在目标代码页中没有匹配项 原因 解决方法 该值违反了该列的完整性约束 空行 没有设置为允许为NULL 我以前也导入过数据,也没报错,今天再次导入数据的时候,发现了两 ...

  6. [LeetCode] 387. First Unique Character in a String 字符串的第一个唯一字符

    Given a string, find the first non-repeating character in it and return it's index. If it doesn't ex ...

  7. 【VS开发】WaitForSingleObject 和 WaitForMultipleObjects函数 (让线程挂起等待事件)

    WaitForSingleObject 和 WaitForMultipleObjects:1.WaitForSingleObject  等待函数可使线程自愿进入等待状态,直到一个特定的内核对象变为已通 ...

  8. Cookie 允许第三方cookie

    这样本地调线上的接口,就可以使用线上接口生成的cookie了. 或者允许,或者增加白名单.

  9. Mysql中的读锁,写锁,乐观锁及事务隔离级别和并发问题

    mysql读锁,写锁,乐观锁 读锁,也叫共享锁(shared lock) SELECT * FROM table_name  WHERE ...  LOCK IN SHARE MODE 写锁,也叫排他 ...

  10. react-native-typescript-项目环境搭建

    1.yarn global add create-react-native-app //全局安装 2.create-react-native-app 项目名称 3.yarn add typescrip ...