git图形化工具GitKraken的使用——Stash和Pop

2023-11-12

正如两个单词的字面意思一样,stash(贮藏)、pop(将准备好的东西突然拿出来)

这一节模拟git中的这两个命令:git stashgit stash pop

在实际开发中,解决bug是避免不了的,在git中,每个bug都是通过新建一个临时分支来修复,修复完成后合并分支,然后删除临时分支。

当你develop分支上开发新的功能,代码写到一半的时候,突然测试报了个bug让你现在解决,但是手上代码写到一半,总不能现在提交吧,因为解决bug是在新的分支上,总得保持工作区以及暂存区是干净的吧。这时候git的stash功能就派上了用场;
现在假设要解决生产上的bug,生产上的bug通常比较急,我们在master分支上创建bug临时分支(这里一般生产紧急bug都是基于master创建,当然也看个人习惯和团队要求,这个后面再说):

这里写图片描述

好了,情景都搭建好了,现在来操作,在自己的功能分支上,执行以下命令:

$ git stash
Saved working directory and index state WIP on feature: e13ca91 添加一级标题
HEAD is now at e13ca91 添加一级标题

对应在GitKraken上的操作是:

这里写图片描述

然后可以从GitKraken上可以看到,工作区以及暂存区都干干净净,在log区域可以看到有个存储样式的图标:

这里写图片描述

好了现在可以去修改bug了,切换到master分支,创建bug分支:

$ git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 8 commits.
  (use "git push" to publish your local commits)

$ git checkout -b issue-001
Switched to a new branch 'issue-001'

修复完成之后提交,切换到master分支,将bug分支分别合并到master和develop,最后删除bug临时分支:

# 切换到master
$ git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 8 commits.
  (use "git push" to publish your local commits)

## 合并bug分支到master 
$ git merge --no-ff -m "merge bug fix 001" issue-001
Merge made by the 'recursive' strategy.
 demo1.html | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

# 切换到develop
$ git checkout develop
Switched to branch 'develop'

# 合并bug分支到develop
$ git merge --no-ff -m "merge bug fix 001" issue-001
Merge made by the 'recursive' strategy.
 demo1.html | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

# 删除bug分支
$ git branch -d issue-001
Deleted branch issue-001 (was 1f1b4f4).

OK,现在bug修复完成了,现在又要回到自己的功能分支继续开发了

之前在功能分支上的修改存储在stash中,可以通过 git stash list 来查看:

$ git stash list
stash@{0}: On feature1: 1:

现在把stash的内容恢复到工作区:

$ git stash pop stash@{0}
On branch feature1
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   demo1.html

no changes added to commit (use "git add" and/or "git commit -a")
Dropped stash@{0} (fe26b728927240e931a406cd763fb0ddb448271e)

这里 git stash popgit stash apply(恢复) 和 git stash drop(删除) 的综合

这里写图片描述

可以看到之前的工作修改已经全部恢复到了工作区(之前的暂存区的内容也会恢复到工作区)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git图形化工具GitKraken的使用——Stash和Pop 的相关文章

  • GitHub API:标记提交所属(与 git describe --tag 并行)

    我正在使用 GitHub API 进行实验octokit https github com octokit octokit rb红宝石 我的目标是能够提取提交 SHA 所属的 标签 现在我可以使用命令行轻松地执行此操作 gt git des
  • 节点项目的 Azure git 部署失败

    我正在尝试将我的项目部署到azure 它正在失败 这些是我采取的步骤 git init git config core longpaths true git add git commit m initial commit 所有这些都有效 我
  • 如何在 Windows 上向 git 存储库添加符号链接?

    我使用 GitHub 的电子环境编译 OS X 的二进制文件 并希望将输出添加到 git 存储库 我试过 git add error readlink sulu app Contents Frameworks Electron Framew
  • git subtree pull -P 不管 总是合并冲突

    问题 即使我没有进行任何更改 每次尝试拉入子树时 我都会遇到合并冲突 我在做什么 In 子树仓库 Make some changes git commit am Changes made git push origin master In
  • 如何修复树与树之间的 Git 错误断开链接?

    我的事务被中断 当我再次尝试时 我遇到了空或损坏的对象错误 在另一个问题之后 我删除了所有空文件 当我运行时 git fsck full 我收到这个错误 Checking object directories 100 256 256 don
  • git 可以与 Xcode 集成吗?

    有没有办法将 git 存储库与 Xcode 内置的 SCM 功能一起使用 Xcode 4 原生支持 git WWDC 2010 上的开发者工具国情咨文演讲 在这里了解更多 Xcode 4 中的新增功能 http developer appl
  • Git 无效的修订范围 Symfony2 Composer 外部包

    RuntimeException Failed to execute git log 18efcf67d236d5bbf46ac67820250dffd0474b6e 94e2146f525fa1367e15646fa273e5b34f92
  • refname 不明确且拉取失败

    我运行了以下命令 因为我想将生产分支移回而不必先签出 git branch f production HEAD 1 现在 当我检查生产时 我收到以下警告 warning refname production is ambiguous 然后我
  • SSH 到 Openshift 服务器失败

    我正在 openshift 服务器上使用 jboss catridge 我希望与其他人共享此实例并添加其他用户的公钥 id rsa pub 当其他人尝试访问该实例时 他会收到以下错误 我在他的实例中尝试了同样的方法 但看到了同样的错误 与
  • git - 更新 fork 的 master 并将我的分支重新建立到它之上?

    我分叉了一个 github 项目 然后将其克隆到本地 然后我在新分支中做了一些更改my github the project repo 然后我添加并提交了更改 并推送到我的 github 存储库并提交了拉取请求 所有者已收到我的请求 并希望
  • 远程测试时如何搭建git开发环境

    这似乎是一个愚蠢的问题 但我觉得我对 GIT 相当了解 但我似乎无法按照我的意愿设置我的开发环境 我要么错过了一些非常简单的东西 要么我做错了 我在我的服务器上初始化了一个裸 git 存储库 将其克隆到我的本地计算机 提交我的文件并推送到原
  • Git:发送电子邮件而不提交

    我有一个项目 我做了更改 并想使用 git send email 功能将它们发送给另一个用户 我发现它可以通过发送补丁来工作 由git format patch每次提交 是否可以只发送diff的 我不想先提交 然后发送补丁 是否有gitfo
  • 格里特:! [远程拒绝] HEAD -> refs/publish/master (没有新的更改)

    我做了一些更改 提交了它们并将分支推送到 Gerrit git push gerrit 现在我的更改没有出现在 Gerrit 中 我认为这是因为我手动推送更改而不是使用git 审查 https github com openstack in
  • git 别名中的 AWK 语句

    我正在尝试创建一个 git 别名来以特定格式打印日志中的所有拉取请求 但是 我在使用 AWK 删除双空格时遇到问题 这是使用以下命令的 git log 的输出 git log merges grep pull request pretty
  • Ansible bitbucket 克隆存储库配置 ssh 错误

    我之前发布过这个问题 但那里的答案不再有效 总之 当使用 Ansible 配置我的 vagrant box 时 在尝试使用 ssh 克隆我的 bitbucket 私有存储库时 我遇到了一个神秘的错误 该错误指出 权限被拒绝 公钥 然而 如果
  • git 认为文件已更改

    我在一台机器上对一个项目做了一些工作 然后推送到 github 在另一台机器上克隆并做了一些工作 然后推送 然后我回到第一台机器并做了一个pull 现在 第一台机器认为项目中最初的所有文件都已更改 我试过了 git checkout f a
  • `git Reset HEAD file` 是否也检查该文件?

    我错误地向 git 添加了一个目录 当我按照提示操作时here https stackoverflow com questions 348170 undo git add通过执行以下操作来撤消添加git reset HEAD
  • 如何在 macOS 上将 Git 升级到最新版本?

    我刚刚购买了一台装有 OS X Lion 的新 Mac 我在终端中检查了默认安装的 git 版本 我得到了答案 git version gt git version 1 7 5 4 我想将 git 升级到最新版本 1 7 8 3 因此我下载
  • GIT:以下未跟踪的工作树文件将被签出覆盖

    我有两个分支 一个称为 master 另一个称为 dev 我目前位于 master 分支 我想转到 dev 分支将文件移动到开发服务器 但是当我执行 git checkout dev 我收到消息 以下未跟踪的工作树文件将被覆盖 查看 pag
  • 创建一个空分支?

    我有一个包含项目的 git 存储库 我现在要对这个项目进行大规模的修改 如何为这次大修创建一个空白的新分支 然后当完成时 如何将这个分支切换到master 使用 checkout orphan 命令 git checkout orphan

随机推荐

  • org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request

    前段时间在开发Spring Boot项目时 遇到了一个很烦人的错误 提示为 org springframework web multipart MultipartException Failed to parse multipart ser
  • 测试人的职场之路,进阶提升?测试老鸟经验分享...

    目录 导读 前言 一 Python编程入门到精通 二 接口自动化项目实战 三 Web自动化项目实战 四 App自动化项目实战 五 一线大厂简历 六 测试开发DevOps体系 七 常用自动化测试工具 八 JMeter性能测试 九 总结 尾部小
  • linux 系统 ES开源工具 elastichd 的使用

    要求安装了 ES和 docker 执行命令 docker run p 9800 9800 d containerize elastichd 然后访问 主机名 9800 即可 打开之后是这样一个界面
  • Win10子系统Ubuntu的WSL2开启、图形界面安装以及CUDA配置

    文章目录 一 Win10开启Linux子系统 操作步骤 1 启用适用于 Linux 的 Windows 子系统 2 检查运行 WSL 2 的要求 3 启用虚拟机功能 4 下载 Linux 内核更新包 5 将 WSL 2 设置为默认版本 6
  • 使用公网IP的ubuntu移植QT运行用QT编写的服务器

    下面是ubuntu下移植Qt 将编好的可执行程序放在另一台主机 然后将Qt的库转移到这台主机上来 设置环境变量后 重启 可以运行qt可执行程序 export LD LIBRARY PATH opt Qt lib LD LIBRARY PAT
  • Extjs 双击关闭tab页

    var tab new Ext TabPanel region center deferredRender false activeTab 0 resizeTabs true turn on tab resizing minTabWidth
  • vue番茄钟 & electron打包

    序 平时对自己学习工作计划安排可以使用番茄钟去规划 番茄钟 一个很简单的时间管理方法 设置一个固定时间 根据自己情况调整 这个时间是一个倒计时 在这段时间内认真去做一件事情 然后一个番茄钟结束后 休息大概五分钟 重新番茄钟 这可以帮助我们量
  • Python正则速查

    Python正则速查 特殊情况 special characters match a literal backslash r Python s raw string notation for regular expression patte
  • elasticSearch - es报错:exception [type=search_phase_execution_exception, reason=all shards failed]

    背景 在做es聚合查询时 遇到了如下问题 exception type search phase execution exception reason all shards failed 结论 查询语句中 字段类型使用错误 在es中查询字段
  • Spark学生答题情况分析

    目录 1 流程分析 2 业务模块划分 3 创建模块包结构 4 准备Kafka主题 4 1 测试发送数据到Kafka 5 需求 5 1 代码实现 6 需求 6 1 准备模型 直接训练并使用 6 2 代码实现 7 学生答题情况离线分析 7 1
  • 《数据结构与算法》——顺序表元素的插入

    撰写时间 2020 5 18 数据结构与算法 顺序表元素的插入 首先来了解的线性表有两种存储方式一种是顺序表的形式语种列表的形式顺序表最大的特点 他的元素按顺序存放地址连续 来看一下这个插入数据元素的方法图 代表L这一个 想在i这个位置插入
  • 网上手机订货软件源码定制搭建

    企业订货管理系统介绍 一 什么是订货通 什么是企业订货管理系统 是一款针对中小型企业通过网络实现 厂家和客户 经销商 批发商 代理商一站式订货系统 最终实现厂家的下游客户通过网络实现实时订货功能 二 订货通能做什么 订货通可帮助企业实现下游
  • redis数据备份

    一 RDB 详解 RDB 是 Redis 默认的持久化方案 就是在配置文件里面设置多久时间之内 执行了多少次写操作 就生成一份数据快照dump rdb文件 备份到指定是目录下 redis conf 文件 以上就是900秒内写操作执行了1次
  • 数学期望(离散型和连续型)

    数学期望的定义 数学期望的计算公式 例题 1 数学期望的定义 在概率论和统计学中 数学期望 或均值 是试验中每次可能结果的概率乘以其结果的总和 是最基本的数学特征之一 它反映随机变量平均取值的大小 随机变量包括离散型和连续型 数学期望的计算
  • 如何玩转kvm切换器

    KVM多电脑切换器适用对象涵盖SOHO 小型工作室 族群 中小型企业乃至于大型跨国企业 KVM多电脑切换器对于企业机房或数据中心的空间及信息环境能创造广大的效益 不仅能降低能源消耗 节省机架与机房空间 还能避免多余的键盘 显示器与鼠标所造成
  • linux内核有哪些协议族,Linux内核中PF_KEY协议族的实现.doc

    Linux内核中PF KEY协议族的实现 Linux内核中PF KEY协议族的实现 1 本文档的Copyleft归yfydz所有 使用GPL发布 可以自由拷贝 转载 转载时请保持文档的完整性 严禁用于任何商业用途 msn yfydz no1
  • libvlc —— 攫取 RGB图像 和 PCM音频 数据[C++代码实现]

    在我以前的实际项目中 曾利用 libvlc 去解码音视频媒体数据 如 RTSP 本地文件 等 通过其提供的回调函数接口 攫取 RGB图像 进行图像分析 如 人脸识别 运动检测 等一类的产品应用 除此之外 只要提供适当的 MRL 配合选项参数
  • sm2算法前端处理_超级账本 Fabric 国密算法支持

    区块链高级技术专家群内部讲座系列活动 群内由区块链相关团队或组织的技术专家 学者和负责人等组成 目前仅限邀请加入 分享内容会在 TechFirst 微信公众号进行首发 欢迎关注 嘉宾介绍 刘地军 现就职于中国网安密码国家重点实验室 负责和参
  • poj 1195 Mobile phones

    Problem poj org problem id 1195 vjudge net contest 146952 problem C Meaning 有一个 S S 的正方形区域 两维的下标范围都是是 0 S 1 有 4 种操作 1 0
  • git图形化工具GitKraken的使用——Stash和Pop

    正如两个单词的字面意思一样 stash 贮藏 pop 将准备好的东西突然拿出来 这一节模拟git中的这两个命令 git stash 和 git stash pop 在实际开发中 解决bug是避免不了的 在git中 每个bug都是通过新建一个