开场白

人生就像一盒巧克力,你永远不知道下一颗是什么味道。

故事背景

同事昨天写了一天的代码,等到快要下班时候,要急着回家,然后拉了下代码,匆忙之中忘了提交本地代码,其中有一个类另外一个同事也做了修改,然后提交到远程仓库。

结果本地代码被pull拉去后给覆盖了,今天发现代码丢失后,同事如热锅的蚂蚁,如果代码找不回来。要重写是小事,万一因为这耽误了工作进度,可能面临失业的危机。同事虽然也有好几年开发经验,但是怎么见过这种阵仗,平常的开发都是Git commit ,pull ,push ,然后就是合并下冲突。代码被强制更新还是大姑娘上桥-头一回

于是找到了拥有多年使用git经验的我,请求我想想办法,一定要把代码给他找出来,并且给出了一顿饭的诱惑。

分析问题-复盘

按我的经验,如果没提交合并,一般都会提示提交。如果强制提交,会先保存在暂存区stash。为了稳妥起见,我让他重新模拟一遍之前的操作,当天拉代码时候,果然出现了以下提示。

由于他用的苹果图形化界面,结果直接默认了stash ,他也没有注意,结果直接把他的代码给覆盖了。

git stash 简介

git stash就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工作区间和上一次提交的内容是完全一样的,所以你可以放心的修Bug,等到修完Bug,提交到服务器上后,再使用git stash apply将以前一半的工作应用回来。可以把stash区理解为一个本地仓库的缓存仓库。图解

具体步骤

  1. git stash list 查看暂存列表

2.git apply git stash apply stash@{$num}

默认使用最近的stash(即stash@{0})。如果要用第二个,git stash apply stash@{1}

拓展

如果要移除使用 git stash drop

idea怎么直接拉去git_我用了一条Git命令,帮助同事免去了失业的风险相关推荐

  1. idea怎么直接拉去git_如何将GitHub上面的项目拉取到IDEA中

    上次,小喵给大家演示了一下,那么今天小喵给大家演示一下如何将GitHub上面的项目拉去到IDEA中. 一 . 获取连接 有两种情况 : 一种是项目未初始化 , 第二种是项目已初始化. 未初始化 获取连 ...

  2. clone远程代码 在不同电脑上git_用树莓派3搭建私有git代码仓库

    0.出发点 由于项目开发的规模和复杂度越来越大,有时候需要同时多人在不同的嵌入式linux上开发代码,在没有用git管理代码和文档前,很难同步代码和文档的版本,宝贵的代码存储也没有安全感. githu ...

  3. commit分拆多个 git_这才是真正的Git——Git内部原理

    本文以一个具体例子结合动图介绍了Git的内部原理,包括Git是什么储存我们的代码和变更历史的.更改一个文件时,Git内部是怎么变化的.Git这样实现的好处等等. TL;DR 本文以一个具体例子结合动图 ...

  4. idea怎么把代码放到git_在IDEA中如何初始化Git,把项目推送到Git上

    在IDEA中如何初始化Git,把项目推送到Git上 登录Gitee(码云)账号,新建仓库 先按如下步骤简单新建一个仓库: 创建成功后,会出现下图中所示的原始文件: 在IDEA上的Terminal中进行 ...

  5. vue项目示例代码git_您应该了解的5个Git命令以及代码示例

    vue项目示例代码git I've used Git for some years now, and I still find myself googling how to do some basic ...

  6. github 和git_学习编码时如何学习Git和GitHub

    github 和git by Iago Rodrigues 通过Iago Rodrigues 学习编码时如何学习Git和GitHub (How you can learn Git and GitHub ...

  7. mac azure git_将Azure Data Studio与Git和GitHub集成

    mac azure git In the last article, Source Control using Git in Azure Data Studio (ADS), we explored ...

  8. vscode 取消拉去变基_开发工具之 Git 篇

    人生是一场难得的修行,不要轻易交白卷    ---胡歌 前言 计划 7.6 要完成 Git 篇,7.7 完成 VsCode 篇.昨天玩了一天,

  9. AndroidStudio git 提交代码,创建分支,合并分支,回滚版本,拉取代码

    主要有: 提交代码,创建分支,合并分支,回滚版本,拉去代码 1 首先电脑中下载git 2 新建的项目把.git 仓库放到项目总中as 工具的右下角 会显示 Git:master 点击有一个弹框如下 然 ...

最新文章

  1. (五)Oracle学习笔记—— 视图
  2. acwing算法题--不同的数
  3. OVS vswitchd启动(三十九)
  4. 织入业务代码-ModifyService
  5. Spring Boot使用@Async实现异步调用:ThreadPoolTaskScheduler线程池的优雅关闭
  6. Python基础——timeit模块
  7. Log4J文件路径设置
  8. koa2 从入门到进阶之路 (七)
  9. JAX-RPC学习笔记(1)-Hello World!
  10. 商业计划书范文3000_凤城编写商业计划书范文模板格式
  11. 东方通tongweb的安装及使用(图文详细版)
  12. LoadRunner教程(2)-LoadRunner性能测试利器
  13. mpa和pis_扭矩换算mpa(压力与扭矩换算)
  14. java定时器定时发短信_quartz-job实现实时或定时发送短信任务(示例代码)
  15. IntelliJ IDEA 设置快捷键(Keymap)
  16. 音乐和计算机跨界融合,上海尝试音乐创新:中国传统文化与西方艺术跨界融合...
  17. 荣耀v40Pro参数配置曝光
  18. 离散数学简单复习知识点汇总
  19. 访问者模式Visitor
  20. 香港大学赵恒爽老师招收计算机视觉博士/博士后/研究助理

热门文章

  1. c语言ascw,VBS中的Asc/AscB/AscW和Chr/ChrB/ChrW函数之间的区别
  2. python分类算法的应用_07-机器学习_(lineage回归分类算法与应用) ---没用
  3. php正则表达式应用,PHP 正则表达式应用
  4. c++11中thread join和detach的区别
  5. java实现c#的datetime.ticks_java的Date.getTime()转换成C#的Datetime.ticks | 学步园
  6. java 重载 不可_深入深刻深到不能再深的理解java中的重载和重写
  7. 什么?你竟然还没有用这几个chrome插件?
  8. Java5:BigInteger、BigDecimal详解
  9. Swif语法基础 要点归纳(一)
  10. HDU 3974 Assign the task(dfs时间戳+线段树成段更新)