分布式版本控制系统Git-----7.Git 使用git rebase合并多次commit
将多次commit合并,只保留一次提交历史。
PS:在我练习的时候,将一个文件的代码做了多次修改,而且每次修改都给提交了,这几次改动的目的都一样,比如说修改RADEME.md,但是每次改动的只是一个小小的代码,但是提交历史上的显示看着会很乱,所以需要合并之前的多次提交历史。
1.首先使用git log查看一下提交历史【--oneline作用是将每个提交放在一行显示】
这样在git中看到的是4次提交(更改txt),有点冗余,需要做的是将4次commit合并为一次
2. git 压缩 git rebase -i HEAD~5【这里也可以写为4,如果是4的话,下面修改参数的时候最上面那条也得修改】
该命令执行后,会弹出一个编辑窗口,5次提交的commit倒序排列,最上面的是最早的提交,最下面的是最近一次提交。
【未修改的编辑窗口我没截图,只截了修改了的图,图在下面】
修改第2-4行的第一个单词pick为squash(也可以改为简写"s"),当然看一下里面的注释就理解含义了。
然后保存退出,git会压缩提交历史,如果有冲突,需要修改,修改的时候要注意,保留最新的历史,不然我们的修改就丢弃了。
【最上面那条记录的不能动(因为后面的提交都是基于其上面提交来的)】
修改以后要记得敲下面的命令:
git add .
git rebase --continue
如果你想放弃这次压缩的话,执行以下命令:
git rebase --abort
如果没有冲突,或者冲突已经解决,则会出现如下的编辑窗口:
在这可以将几次的提交说明删了,只留一个
只留着这一条信息。 井号#开头的是注释,不用管。
3.再次git log查看一下提交历。。最上面那一条就是刚刚合并的。合并成功了。
分布式版本控制系统Git-----7.Git 使用git rebase合并多次commit的更多相关文章
- 使用git rebase合并多次commit
使用git rebase合并多次commit 聊下 git rebase -i
- GIT分布式版本控制系统
Git诞生历史 我想大家还记得Linus torvalds在1991年时发布了Linux操作系统吧,从那以后Linux系统变不断发展壮大,因为Linux系统开源的特性,所以一直接受着来自全球Linux ...
- Git分布式版本控制系统学习笔记
Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.[4] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本 ...
- [.net 面向对象程序设计进阶] (27) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git
[.net 面向对象程序设计进阶] (26) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git 本篇导读: 接上两篇,继续Git之旅 分布式版本控制系统 ...
- [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit
[.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit 读前必备: 接上篇: 分布式版本控制系统Git——使用GitS ...
- [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境
[.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境 本篇导读: 前面介绍了两款代码管理工具 ...
- Git(分布式版本控制系统)在Windows下的使用-将代码托管到开源中国(oschina)
一.Git是什么? Git --- The stupid content tracker, 傻瓜内容跟踪器.Git是目前世界上最先进的分布式版本控制系统. 二.SVN与Git的最主要的区别? ...
- Git ——分布式版本控制系统
Git ——分布式版本控制系统 本人git主页地址:https://github.com/lendoon/test.git git使用心得:初次接触git在课堂上,老师给我们提供了一个代码托管的场所, ...
- GIT(分布式版本控制系统)
Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.[1] Git的读音为/gɪt/. Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本 ...
随机推荐
- java String源码学习
public final class String implements java.io.Serializable, Comparable<String>, CharSequence { ...
- JSP标签<meta>的作用
meta标签: meta标签共有两个属性,它们分别是http-equiv属性和name属性. name 属性 :<meta name="Generator" contect= ...
- 动态SQL语句:定义(一)
文章系列 动态SQL语句:定义(一) 静态SQL与动态SQL 静态SQL:程序运行前,具有固定的形式和结构的SQL. 动态SQL:程序运行时,能够动态改变形式或结构的SQL. 一些思考和想法 在实际的 ...
- 当我们在谈论kmeans(3)
本系列意在长期连载分享,内容上可能也会有所删改: 因此如果转载,请务必保留源地址,非常感谢! 博客园:http://www.cnblogs.com/data-miner/(暂时公式显示有问题) ...
- nordic DFU固件升级
一:测试固件芯片类型: nordic 52832 二:下载升级源码 1>nRF Toolbox App 源码 https://github.com/NordicSemiconductor/IO ...
- 《我与Android不得不说的故事-1-立贴明志》
产品需要迭代,人也一样,自我更新,才能不断进步,进军新领域,立贴明志. 顺便记录一下新路上的坑坑洼洼
- vue+webpack构建项目
概述 -- 项目中会用到的插件 vue-router vue-resource 打包工具 webpack 依赖环境 node.js start 安装vue开发的模板 # 全局安装 vue-cli $ ...
- asp.net mvc + mysql + ef6
1.通过NuGet包管理器安装:EntityFramework6.1.3.MySql.Data.Entity6.9.9 2.添加新建项→ADO.NET实体对象模型(命名MyContext)→空Code ...
- 一点公益二码公益开发模式系统源码App
写这篇文章,是因为最近看到的一个著名的开源项目在内部使用时的各种问题,不得不说,很多的开源的东西思想是不错的,但离真正工程化都有不小的距离,所以没什么商业公司采用的开源产品如果要引入的话一定要慎重,通 ...
- 一个用于上传文件的servlet
1.jsp页面操作文件: <%@ page language="java" import="java.util.*" pageEncoding=" ...