当我们在使用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. <div> <p> <span>的用法和区别

    <div> 标签可以把文档分割为独立的.不同的部分.它可以用作严格的组织工具,并且不使用任何格式与其关联. 更重要的意义是在网页的动态实现过程中,对划分的区域统一处理,例如换背景色.字体等 ...

  2. 如何查看Linux服务器是32位还是64位?

    使用命令 “getconf LONG_BIT” 如果返回的是32,那么就是32位 如果返回的是64,那么就是64位

  3. Flutter中通过普通的点击事件修改TextFormField的值

    import 'package:flutter/material.dart'; import 'package:zhongfa_apps/widget/public/PublicWidget.dart ...

  4. post 发送方式

    /** * post 方式 解码 */ public static String getWebContentByPost(String urlString, String data, final St ...

  5. depth wise CNN

    depth wise cnn相对于传统的CNN,区别在于:它是逐通道做卷积操作! 例子如下: (1)使用传统卷积,输入:H*W*C_in,最终输出h*w*C_out:卷积核尺寸为K*K*C_in*C_ ...

  6. 使用adb命令控制anroid手机

     adb工具即Android Debug Bridge(安卓调试桥) tools.它就是一个命令行窗口,用于通过电脑端与模拟器或者真实设备交互.在某些特殊的情况下进入不了系统或者需要自动化测试的时候, ...

  7. 安裝TA-Lib到想要罵髒話

    收集下載股票交易指數的歷史數據,並計算主要的幾個指標來進行技術分析. 查找網上的資料,發現大家都在用TA-Lib來計算指標,於是在下載並匯入了數據後開始安裝這個庫. pip install TA-Li ...

  8. 基于thrift的node.js rpc服务

    1.在node.js 服务下创建node_modules文件,npm install  thrift 下载thrift到该文件下. 2.编写idl文件.user.thrift 内容如下: struct ...

  9. [LeetCode] 21. Merge Two Sorted Lists 合并有序链表

    Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...

  10. [LeetCode] 712. Minimum ASCII Delete Sum for Two Strings 两个字符串的最小ASCII删除和

    Given two strings s1, s2, find the lowest ASCII sum of deleted characters to make two strings equal. ...