git stash功能的使用
一,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功能的使用的更多相关文章
- IDEA : Git Pull Failed 解决(IDEA中使用stash功能)
一.问题: 本地要commit代码,commit之前需pull代码,但pull提示冲突.如下 Git Pull Failed Your local changes would be overwritt ...
- git stash封存分支 以及关于开发新功能的处理
有种情况,我们要修复项目的bug时,但别的分支有修改的代码,要修复的bug可能会影响(所有分支共用一个暂存区).可以单独创建一个bug分支,用于修复和提交bug,在修改前可以先stash封存分支修改的 ...
- Git Stash紧急处理问题,需要切分支
在开发过程中,大家都遇到过bug,并且有些bug是需要紧急修复的. 当开发人员遇到这样的问题时,首先想到的是我新切一个分支,把它修复了,再合并到master上. 当时问题来了,你当前正在开发的分支上面 ...
- git stash 用法
git stash用于将当前工作区的修改暂存起来,就像堆栈一样,可以随时将某一次缓存的修改再重新应用到当前工作区. 一旦用好了这个命令,会极大提高工作效率. 直接举例说明: 1.准备工作,首先初始 ...
- git stash提交PR的正确步骤&git squash技术
1.git stash梳理 1.1git stash的克隆与同步 首先整理下git stash的逻辑是这样 在本地做出了新的修改,提交时显示当前的版本不是最新版本,这时就需要先pull一下自己代码仓库 ...
- Git的Bug分支----临时保存现场git stash
软件开发中,bug就像家常便饭一样,有了bug就需要修复,在Git中,由于分支是如此的强大,所以每个bug通过一个新的分支来修复,在修复后,合并分支,然后将临时分支删除. 当你接到一个修复代号为119 ...
- git stash命令详解
git stash命令用于将更改储藏在脏工作目录中. 使用语法 git stash list [<options>] git stash show [<stash>] git ...
- Svn Replacement For Git Stash
svn 实现git stash类似的功能 % svn diff > WorkInProgress.txt % svn revert -R . <make changes> % svn ...
- git stash应用
今天在看一个bug,之前一个分支的版本是正常的,在新的分支上上加了很多日志没找到原因,希望回溯到之前的版本,确定下从哪个提交引入的问题,但是还不想把现在的修改提交,也不希望在Git上看到当前修改的版本 ...
随机推荐
- pytest测试框架 -- skip跳过执行测试用例
跳过执行测试用例 1.@pytest.mark.skip(reason=" ") -- 跳过执行测试函数 可传入一个非必须参数reason表示原因 import pytest@ ...
- 串(string)
题目描述 给定一个由小写字母组成的字符串s,每次你可以删去它的一个非回文子串, 求删成空串的最小次数. 输入输出格式 输入格式: 第一行一个整数 t 表示数据组数. 每组数据第一行一个整数 n表示字符 ...
- SSM获取SqlSessionFactory
1.实现类获取session //根据id 修改阈值 public int altThers(threshold threshold) { SqlSessionFactoryBuilder build ...
- 基于DDD+微服务的开发实战(1)
1 DDD是什么? DDD是领域驱动设计,是Eric Evans于2003年提出的,离现在有17年. 2 为什么需要DDD 当软件越来越复杂,实际开发中,大量的业务逻辑堆积在一个巨型类中的例子屡见不鲜 ...
- 【python】调用sm.ms图床api接口,实现上传图片并返回url
图床简介 sm.ms网站提供免费的图床服务.单图上传大小限制5MB,每次最多上传10张,支持多种图片链接格式和api接口调用. 获取令牌 注册账号并登录,点击User-Dashboard 点击API ...
- 集群实战(1):swarm安装记述
查看主机名 hostnamectl 修改主机名 hostnamectl set-hostname xxx 关闭selinux sed -i 's/SELINUX=enforcing/#SELINUX= ...
- Git+Gitlab+Ansible剧本实现一键部署动态网站(5)
项目前言 之前已经写了一篇关于git和ansible的博客<Git+Gitlab+Ansible剧本实现一键部署Nginx–技术流ken>.关于git,gitliab,ansible在我以 ...
- Hashmap,Set,Map,List,ArrayList的区别
表格: 类型 默认容量 加载因子[1] 扩容增量 底层实现 是否安全及同步方式 Vector 10 1 2倍 Object数组 安全,synchronized ArrayList 10 1 1.5倍( ...
- SpringBoot框架:配置文件application.properties和application.yml的区别
一.格式 1.application.properties格式: server.port=8080 server.servlet.context-path=/cn spring.datasource. ...
- nohup命令重定向标准输出和错误输出
命令:command > /dev/null 2>&1 & 输出到/dev/null表示输出重定向到黑洞,即输出内容不打印到屏幕上,null是/dev下空设备文件. &g ...