代码冲突二:总结一句话 就是(新功能实现还未完成,之前完成的部分又出现了新的问题需要修复),如何既能修复bug,又不让写的新任务代码丢弃的问题。

上一节中我们解决了多人协作代码冲突的问题,这一节要讲解另外一种冲突解决:有这样一种场景,今天老板给我安排了一个新的项目,我们昨天的代码已经提交到github上了,今天我们需要干一个新的事情,但是在干这个新的事情的过程中,我们之前的项目出现了一个紧急的错误需要我们修复,那么我们怎么处理当前处理的任务代码呢?我们不能把它丢弃掉,但是如果不丢弃直接更新到线上,因为没有经过测试,会有很多的问题。

我们用git stash命令解决这一个问题。git stash能够对当前的工作区的代码以及暂存区的代码进行保存。stash像一个堆栈,我们可以对他多次推送,相当于入栈的操作。stash还有另外几条命令。

git stash list

 列出所有保存的记录列表。就是推送多次到stash里面,它都会帮我们存储。

以下参考:http://blog.csdn.net/wh_19910525/article/details/7784901 比教程中所讲的更加容易理解。

//*****************************************

git stash 可用来暂存当前正在进行的工作, 比如想pull 最新代码(远程抽取最新的代码), 又不想加新commit(所以将当前的工作区保存住),或者另外一种情况,为了fix 一个紧急的bug,  先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作(这种情况用到的比较多,也比较好理解),这段文字比较好理解,比视频中的好理解。

$git stash
$do some work
$git stash pop

进阶:

git stash save "work in progress for foo feature"

当你多次使用’git stash’命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑。

git stash list’ 命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,例如使用’git stash apply stash@{1}’就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用’git stash clear’来将栈清空。

git stash          # save uncommitted changes
# pull, edit, etc.
git stash list     # list stashed changes in this git
git show stash@{0} # see the last stash
git stash pop      # apply last stash and remove it from the list
git stash --help   # for more info

//***********************************************

最原始的程序为:

新任务的程序为:

现在最原始的程序出现了紧急bug需要修复,所以使用了git stash保存当前的工作区,执行完该命令后,程序重新变为了最原始的程序(没有任何新任务(功能)的代码痕迹):

然后我们修复了bug(这个bug的修复我们用定义新的变量程序代码来模拟),如下图:

将修复完之后的程序推送到github上,我们需要继续完成我们未完成的新任务,使用git stash pop返回之前保存过的工作区,这时,恢复的版本和修改bug之后的版本会出现冲突,如图:

修改程序,解决冲突,完成新功能后就可以重新提交到github上了,这样我们既解决了之前老程序存在的问题,有保存了完成新任务和新功能所为而未完成的程序,冲突解决之后,就可以完成新的功能了,并进一步的提交了

【Git/Github学习笔记】Git常用命令(代码冲突二)相关推荐

  1. git/github学习笔记

    原文地址为: git/github学习笔记 请移步到:http://www.testclass.net/git/ ----- 我重新对git/github教程进行了编排和整理. 1. git 版本控制 ...

  2. Git学习笔记:常用命令总结

    本文根据廖雪峰的博客,记录下自己的学习笔记.主要记录常用的命令,包括仓库初始化.添加文件.提交修改.新建分支.内容暂存.分支管理.标签管理等内容. git是分布式版本控制系统. 首先是安装,从官网下载 ...

  3. Git Github学习笔记

    Git && Github 一.本地库操作命令 本地初始化 git init # 选择一个目录进入 helin9s@LAPTOP-M719A9K6 MINGW64 /d/DEVELOP ...

  4. NodeJs学习笔记002--npm常用命令详解

    npm 常用命令详解 npm是什么 npm install 安装模块 npm uninstall 卸载模块 npm update 更新模块 npm outdated 检查模块是否已经过时 npm ls ...

  5. Linux 学习笔记2 常用命令

    Linux 学习笔记1 安装linux详细教程_O丶ne丨柒夜的博客-CSDN博客 Linux_目录结构 基本介绍 1.liux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录&quo ...

  6. Docker学习笔记之常用命令

    背景 整理一下常用的Docker命令 常用命令 帮助命令 1.查看版本 $ docker versionClient: Version: 18.03.0-ce API version: 1.37 Go ...

  7. matlab学习笔记之常用命令(一)

    一.清除命令. 1.clear all:%清除所有变量,通常在matlab的工作区:另外断点也会被清除掉 2.close all:%关闭所有窗口(除了编辑器窗口.命令窗口.帮助窗口) 3.clc;%清 ...

  8. Hadoop学习笔记——Hadoop常用命令

    Hadoop下有一些常用的命令,通过这些命令可以很方便操作Hadoop上的文件. 1.查看指定目录下的内容 语法: hadoop fs -ls 文件目录 2.打开某个已存在的文件 语法: hadoop ...

  9. 大数据学习笔记——linux常用命令整理

    1.常用操作 查看当前目录下的所有文件及目录 ls/ll 进入目录 cd 查看当前目录 pwd 结束当前进程 ctrl+c/ctrl+z   ctrl + z可以将一个正在前台执行的命令放到后台,并且 ...

  10. [Linux学习笔记] Linux常用命令 - 文件搜索命令

    2019独角兽企业重金招聘Python工程师标准>>> 文件搜索命令 1. 显示系统命令所在目录: which 命令名称: which 命令所在路径: /usr/bin/which ...

最新文章

  1. VS2008环境下CEGUI 0.7.1及相关工具的编译(转载 + 额外的注意事项)
  2. flutter 图片路径_【Flutter开发工具推荐】Flutter资源管理利器:Flr
  3. python(numpy,pandas5)——numpy中copy 和 deep copy
  4. HTTP progressive download渐进式传输
  5. Bitmap Index
  6. classNotFound异常的一个原因
  7. 19. Window focus() 方法
  8. 电影推荐之《白鹿原》 隐私策略(Privacy policy)
  9. 数字后端设计实现之时钟树综合实践篇
  10. Abaqus中多层介质设置初始应力场(补充介绍)
  11. 隐马尔科夫模型(二)
  12. 手机开热点但是电脑一直连接不上_电脑连接不上手机热点解决办法
  13. Jenkins - Publish Over SSH
  14. 陆奇:创业必知的10大驱动力,让你成为水塘中最大的鱼
  15. 数据库上机实验一、二
  16. h5拨打电话 写法IOS无效
  17. 802.11协议帧间间隔-SIFS,DIFS,PIFS,EIFS
  18. (二)使用npm搭建React项目
  19. LUNA16数据集简介
  20. jQuery——立可得项目心得

热门文章

  1. IE6下png图片透明设置
  2. 02. Prefer consts, enums, and inlines to #defines
  3. ROS学习记录:基于Python的ROS话题消息编程
  4. linux防火墙常用相关操作
  5. java泛型范围_Java泛型类型中的通配符参数在其范围内的正式条件是什么?
  6. python游戏开发库_太好玩了!用Python写个弹球游戏2.0
  7. e盾服务端源码_学习ZooKeeper源码,就从这篇开始吧
  8. show tables mysql_MySQL_解析MYSQL显示表信息的方法,在用mysql时(show tables),有时候 - phpStudy...
  9. FNV摘要HASH算法实战
  10. 类的继承与派生的基础学习