IDEA:Git stash 暂存分支修改的实现代码
场景:
当我们正在master分支开发新功能的时候,突然接到一个任务发现线上出现了一个紧急的BUG需要修复,由于没有打新分支做这部分新需求,这时正做到半途中....已经把本地代码修改得花里胡哨了,该怎么办,有什么办法快速解决吗?
这时Git stash这个非常实用的功能就派上用场了,将本分支的修改暂存起来。
涉及到的几个命令:
1、git status:查看工作区文件状态,列出已经修改的文件
2、 git stash save '自定义描述' :暂存工作区的文件
3、git stash list:查看所有暂存列表
4、git stash pop:恢复暂存的文件,直接将最近一次 stash 的代码pop出来并删除stash记录,还原到stash隐藏之前
5、git stash apply id:恢复暂存的文件,和git stash pop功能一样,先通过git stash list找到记录编号,通过编号id恢复。区别在于git stash apply id不会删除stash记录。
实际中还原后就没什么必要在保存stash记录了,推荐直接用git stash pop就OK了。
IDEA 也可以用可视化界面直接操作:右键project > git > repository
拓展:找回清除的 stash 数据
我们能将代码暂存起来,当然也能将暂存区的数据删除,如果在没有恢复暂存代码的时候不小心将暂存区的数据删除了该怎么吧?
只需要用这句命令即可:
git log --graph --oneline --decorate $( git fsck --no-reflog | awk '/dangling commit/ {print $3}')
找到对应的 id,然后用git stash apply id 命令直接恢复找回即可
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
idea手动刷新git分支的详细教程
idea手动刷新git分支 相信很多小伙伴都遇到过这样的问题,在git上新建的分支却在idea的git分支中找不到又不知在哪里刷新,博主最近也刚好碰到这个问题就分享出来,避免大家因此浪费过多时间!我这里idea版本是2019.1.3,版本不一样入口也有可能不一样,望周知! 首先新建一个分支 然后发现找不到刚建的req_5357115分支,也就无法checkout,接着往下来 依次点击:vcs->git->pull 点击旁边红框里的刷新按钮 当然此时这里是没有req_5357115这一分支的 显
-
解决idea 暂存文件或idea切换分支代码丢失的问题
idea切换分支时,修改过的代码文件全部不见了 找了一下问题,切换分支时,idea自动会创建暂存文件, 点开,右边View --> 即可显示暂存文件. 点击Apply Stash 即可将暂存文件应用到当前分支. 如果发现此方法还是不行,别慌,idea自动会记录当前文件的修改状态,默认保存是5天,可以自行修改配置保存时长. 即可显示此文件改动记录 补充:IDEA git 切换分支注意事项 IDEA 帮助文档提供了切换分支时的选项说明 1. 本地分支切换的时候(例如A切到B),会弹出来Restore
-
intellij idea使用git stash暂存一次提交的操作
分享一个小技巧: 在日常开发中有时候需要切换到另外的一个分支,但在某些条件下当前的分支上存在一些文件尚未提交,这时候就需要使用到idea自带的git stash功能来"暂存"一些尚未提交的文件,待切换到另外的分支上再提交到新的分支上去. 任意打开一个项目进行演示: step1:切换到分支a step2: stash changes step3:切换到分支b,unstash 这样就能避免一些不必要的merge操作,也能够正常切换到其他的分支了. 补充:文件在IDEA中已进行Git的Com
-
IntelliJ IDEA2020、pycharm、webstorm激活永久激活及使用教程(总目录篇) 原创
IntelliJ IDEA的简介 IDEA 全称IntelliJ IDEA,是用于java语言开发的集成环境(也可用于其他语言),IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.Ant.JUnit.CVS整合.代码审查. 创新的GUI设计等方面的功能可以说是超常的.IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主. 官网介绍 IntelliJ IDEA的每个
-
IDEA:Git stash 暂存分支修改的实现代码
场景: 当我们正在master分支开发新功能的时候,突然接到一个任务发现线上出现了一个紧急的BUG需要修复,由于没有打新分支做这部分新需求,这时正做到半途中....已经把本地代码修改得花里胡哨了,该怎么办,有什么办法快速解决吗? 这时Git stash这个非常实用的功能就派上用场了,将本分支的修改暂存起来. 涉及到的几个命令: 1.git status:查看工作区文件状态,列出已经修改的文件 2. git stash save '自定义描述' :暂存工作区的文件 3.git stash list
-
git stash暂存的操作方法
为什么我们需要它 不得不说,在知道这个命令的时,以及之后的使用中,我都超级热爱这个命令,因为它真的太好用了. 给大家说一下我使用这个命令的场景: 此时我在 feature_666 分支,非常聚精会神加持高专注地实现一个功能 666 模块,简直键盘如飞的编写代码--- 然后这时,客户反馈出一个 bug , 非常严重,必须立马解决,优先级为 0 !!! 于是,我需要去到 release 分支去 checkout 新的分支去工作了,但是 666 功能还没完成怎么办? 此时我面临着一个选择题: A:提交
-
git工作区暂存区与版本库基本理解及提交流程
目录 一.git的三个区的基本理解 1.工作区 2.版本库 3.暂存区 二.工作区中.git目录 三.通过提交流程理解三个区 1.工作区新加文件 index.html 2.将index.html提交到暂存区 3.将暂存区内的内容提交到版本库 4.将本地版本推送到github上 一.git的三个区的基本理解 1.工作区 上节课我们已经从github上clone了工程到本地,这个git-demo1的文件夹内部,就是我们的工作区,编写代码就在这个目录下进行,比如: 更加直观一点,工作区就是指我们项目的
-
关于IDEA中Git暂存代码的使用
目录 一 问题引入 二 解决方法 三 总结 一 问题引入 在日常工作中, 通常都按照迭代功能划分分支开发, 即一个迭代一个分支. 正常迭代开发-测试-上线没有问题. 可是突然上个分支有一个很紧急的问题bug,需要修改优化, 此时都是在新分支上开发, 随意进行分支切换, 很容易导致代码混乱,不利于代码管理, 那么有没有一个办法可以暂存当前代码状态呢? 类似小时候玩游戏, 玩到一半想存档, 玩其他的或看电视, 下次再继续玩,还是当前状态. 二 解决方法 通过IDEA来完成操作 在新分支中, 点击
-
git stash的正确用法详解
目录 概述 git stash 具体用法 概述 前段时间突然发现,我之前对git stash的使用都是错误的. 具体说来,我是这么使用的:在远端有新的提交,需要git pull来拉取合并时,发现本地有一些未提交的修改,功能也没实现,不适合做一次commit.这时候我执行git stash隐藏本地的修改,然后执行git pull来拉取远端的更新,在最新代码基础上重新实现stash的那些代码中的功能. 这里的问题是,重新实现stash代码中的那一步,其实完全可以用git stash pop来替代,执
-
Git 教程之工作区、暂存区和版本库详解
Git 工作区.暂存区和版本库 基本概念 我们先来理解下Git 工作区.暂存区和版本库概念 工作区:就是你在电脑里能看到的目录. 暂存区:英文叫stage, 或index.一般存放在"git目录"下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index). 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. 下面这个图展示了工作区.版本库中的暂存区和版本库之间的关系: 图中左侧为工作区,右侧为版本库.在版本库中标记为 "
-
git工作区和暂存区_动力节点Java学院整理
Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 先来看名词解释. 工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区: 版本库(Repository) 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD. 分支和H
-
Git的基本操作流程及工作区版本库暂存区的关系
目录 1.Git的基本操作流程 2.工作区.暂存区.版本库的区别 (1)工作区 (2)版本库 (3)暂存区 (4)通过新增文件理解三个区的关系 (5)说明 1.Git的基本操作流程 初始化一个本地版本库,每个版本库仅需要执行一次. 将中央版本库内容克隆到本地版本库,每个客户机仅需要执行一次. 添加指定文件到版本控制管理(这一步只是添加到Git暂存区). 将添加.修改等操作,提交到本地版本库(将暂存区的内容提交到本地版本库).如果远程仓库的内容被别人修改了,需要先同步远程的内容,直接git pul
随机推荐
- Mysql字符串截取函数SUBSTRING的用法说明
- mysql 临时表 cann't reopen解决方案
- 如何准确地获得一个整数?
- 不用xp_cmdshell照样执行命令
- python 从远程服务器下载日志文件的程序
- JQuery动态给table添加、删除行 改进版
- 探讨C++中不能声明为虚函数的有哪些函数
- Java 并发编程:volatile的使用及其原理解析
- ASP.NET中 ListBox列表框控件的使用方法
- PHP文件操作实例总结
- JavaScript 节点操作 以及DOMDocument属性和方法
- MySQL实现远程登录的方法
- node.js中的fs.stat方法使用说明
- python操作ie登陆土豆网的方法
- jqGrid日期格式的判断示例代码(开始日期与结束日期)
- Centos下编译安装Nginx教程详解
- Java中常见的5种WEB服务器介绍
- Python的Django框架中的数据过滤功能
- C#使用Directoryinfo类获得目录信息和属性的方法
- Android中AlertDilog显示简单和复杂列表的方法