一,git stash的作用:

能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录

说明:架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,看一个git stash的例子:

root@kubuntu:/data/git/clog# git status
位于分支 dev
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: a.txt
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")

root@kubuntu:/data/git/clog# git stash
保存工作目录和索引状态 WIP on dev: 6a1ea30 e

root@kubuntu:/data/git/clog# git status
位于分支 dev
无文件要提交,干净的工作区

三,弹出stash时发生冲突报错:如何解决?

要解决冲突,可以通过创建新的分支来解决冲突

即:从当前创建新分支,暂存区的代码应用到新分支,

而堆栈中保存的stash代码恢复到原分支

弹出stash代码的命令:

root@kubuntu:/data/git/clog# git stash pop
error: 您对下列文件的本地修改将被合并操作覆盖:
a.txt
请在合并前提交或贮藏您的修改。
终止中

四,如何清除堆栈中的所有内容?

root@kubuntu:/data/git/clog# git stash clear

五,如何查看当前stash中的内容?

root@kubuntu:/data/git/clog# git stash list

六,stash功能使用需要注意的地方:

如果存在还没有add到暂存区的文件

则不能被stash,例如新增加还没做add的文件:

看一个例子:

root@kubuntu:/data/git/clog# git status
位于分支 dev
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: a.txt
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
root@kubuntu:/data/git/clog# vi b.txt
root@kubuntu:/data/git/clog# git status
位于分支 dev
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: a.txt
未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容)
b.txt
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")

root@kubuntu:/data/git/clog# git stash
保存工作目录和索引状态 WIP on dev: 6a1ea30 e

root@kubuntu:/data/git/clog# git status
位于分支 dev
未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容)
b.txt
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)

说明:在上面的例子中:b.txt文件,因为没有被add到暂存区,

所以stash命令对其不起作用

git stash功能的使用的更多相关文章

  1. IDEA : Git Pull Failed 解决(IDEA中使用stash功能)

    一.问题: 本地要commit代码,commit之前需pull代码,但pull提示冲突.如下 Git Pull Failed Your local changes would be overwritt ...

  2. git stash封存分支 以及关于开发新功能的处理

    有种情况,我们要修复项目的bug时,但别的分支有修改的代码,要修复的bug可能会影响(所有分支共用一个暂存区).可以单独创建一个bug分支,用于修复和提交bug,在修改前可以先stash封存分支修改的 ...

  3. Git Stash紧急处理问题,需要切分支

    在开发过程中,大家都遇到过bug,并且有些bug是需要紧急修复的. 当开发人员遇到这样的问题时,首先想到的是我新切一个分支,把它修复了,再合并到master上. 当时问题来了,你当前正在开发的分支上面 ...

  4. git stash 用法

    git stash用于将当前工作区的修改暂存起来,就像堆栈一样,可以随时将某一次缓存的修改再重新应用到当前工作区. 一旦用好了这个命令,会极大提高工作效率.   直接举例说明: 1.准备工作,首先初始 ...

  5. git stash提交PR的正确步骤&git squash技术

    1.git stash梳理 1.1git stash的克隆与同步 首先整理下git stash的逻辑是这样 在本地做出了新的修改,提交时显示当前的版本不是最新版本,这时就需要先pull一下自己代码仓库 ...

  6. Git的Bug分支----临时保存现场git stash

    软件开发中,bug就像家常便饭一样,有了bug就需要修复,在Git中,由于分支是如此的强大,所以每个bug通过一个新的分支来修复,在修复后,合并分支,然后将临时分支删除. 当你接到一个修复代号为119 ...

  7. git stash命令详解

    git stash命令用于将更改储藏在脏工作目录中. 使用语法 git stash list [<options>] git stash show [<stash>] git ...

  8. Svn Replacement For Git Stash

    svn 实现git stash类似的功能 % svn diff > WorkInProgress.txt % svn revert -R . <make changes> % svn ...

  9. git stash应用

    今天在看一个bug,之前一个分支的版本是正常的,在新的分支上上加了很多日志没找到原因,希望回溯到之前的版本,确定下从哪个提交引入的问题,但是还不想把现在的修改提交,也不希望在Git上看到当前修改的版本 ...

随机推荐

  1. Python数据类型方法整理

      前言:主要是对Python数据类型做一个整理,部分知识点源于<python3程序开发指南(第二版)>   一.Python的关键要素 1.1 要素1:数据类型  int类型 str类型 ...

  2. 教务管理系统(node+express+mysql)

    模块拆分 现在将教务系统拆分成九个模块: 教务系统教师业务:师资管理.教学计划管理.排课管理 教务系统学生业务:考试管理.毕业生管理.学生综合测评 信息查询:自习室查询.课程表查询 考试系统:实现学生 ...

  3. [程序员代码面试指南]最长递增子序列(二分,DP)

    题目 例:arr=[2,1,5,3,6,4,8,9,7] ,最长递增子序列为1,3,4,8,9 题解 step1:找最长连续子序列长度 dp[]存以arr[i]结尾的情况下,arr[0..i]中的最长 ...

  4. charles常用功能 request和response(简单的操作)

    先介绍一个修改request请求参数值的方法吧 第一步: 拷贝完成后还需要配置一下: 先添加一个: 然后下一步: 最后点击OK,就可以开始操作request和response数据了 先修改reques ...

  5. JVM--垃圾回收GC篇

    Java 自动内存管理最核心的功能是 堆 内存中对象的分配与回收. Java 堆是垃圾收集器管理的主要区域,因此也被称作GC 堆(Garbage Collected Heap).从垃圾回收的角度,由于 ...

  6. 分布式系统监视zabbix讲解七之分布式监控

    分布式监控 概述 Zabbix通过Zabbix proxy为IT基础设施提供有效和可用的分布式监控 代理(proxy)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器. Pro ...

  7. treemap使用了解

    参考了https://www.jianshu.com/p/d9ad7f6d75a0 https://www.zhuxiaodong.net/2018/collection-in-java-treema ...

  8. Java 里的 for (;;) 与 while (true),哪个更快?

    在 JDK8u 的 jdk 项目下做个很粗略的搜索: mymbp:/Users/me/workspace/jdk8u/jdk/src$ egrep -nr "for \\(\\s?;\\s? ...

  9. IdentityServer4与API单项目整合(net core 3.X)

    一.创建一个空的api项目 添加identityserver4的nuget包 配置config文件 public static IEnumerable<IdentityResource> ...

  10. maven打包(jar)类型错误

    maven项目打包测试环境时部署发现是开发环境.确认打包命令无误, 此情况下将target内容全部删除,重新打包即可.是全部删除.