将多次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的更多相关文章

  1. 使用git rebase合并多次commit

    使用git rebase合并多次commit 聊下 git rebase -i

  2. GIT分布式版本控制系统

    Git诞生历史 我想大家还记得Linus torvalds在1991年时发布了Linux操作系统吧,从那以后Linux系统变不断发展壮大,因为Linux系统开源的特性,所以一直接受着来自全球Linux ...

  3. Git分布式版本控制系统学习笔记

    Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.[4]  Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本 ...

  4. [.net 面向对象程序设计进阶] (27) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git

    [.net 面向对象程序设计进阶] (26) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git 本篇导读: 接上两篇,继续Git之旅 分布式版本控制系统 ...

  5. [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit

    [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit 读前必备: 接上篇: 分布式版本控制系统Git——使用GitS ...

  6. [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境

    [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境 本篇导读: 前面介绍了两款代码管理工具 ...

  7. Git(分布式版本控制系统)在Windows下的使用-将代码托管到开源中国(oschina)

    一.Git是什么?     Git --- The stupid content tracker, 傻瓜内容跟踪器.Git是目前世界上最先进的分布式版本控制系统. 二.SVN与Git的最主要的区别?  ...

  8. Git ——分布式版本控制系统

    Git ——分布式版本控制系统 本人git主页地址:https://github.com/lendoon/test.git git使用心得:初次接触git在课堂上,老师给我们提供了一个代码托管的场所, ...

  9. GIT(分布式版本控制系统)

    Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.[1] Git的读音为/gɪt/. Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本 ...

随机推荐

  1. 开箱即用 - Memcache

    废话少说,先上代码C# memcache Demo memcache 是服务器缓存系统,以键值对方式保存数据到内存中,把对象序列化后,理论上可支持所有的数据类型. 使用情景:怎么用都可以,注意的是它只 ...

  2. jquery开头

    jQuery(function(){});jQuery().ready(function(){}); 绑定点击事件: jQuery('#temp').click(function() {}); $(d ...

  3. UITabelview的删除

    删除的效果 Automatic Bottom Fade left middle none right top 简单删除 先删除数据源里的数据,然后再删除cell,否者会报错 let indexPath ...

  4. Array类型方法总结(未写完)

    转换方法:  toString() toLocaleString() valueOf() 栈方法:   push()---在数组末尾添加项,返回修改后的长度,   pop()---在数组末尾移除项,返 ...

  5. 利用python3.5 +TK 开发股票自动交易伴侣

    # -*- encoding: utf8 -*- # version 1.11 import tkinter.messagebox,os from tkinter import * from tkin ...

  6. android 开发心得杂记

    1.Android周刊关注. 2.4季Android性能优化典范 胡凯 http://mp.weixin.qq.com/s?__biz=MzA4NTQwNDcyMA==&mid=4021354 ...

  7. IOS开发调整UILabel的行间距

    CGFloat heih = 20;   NSString * cLabelString = @"这是测试UILabel行间距的text.这是测试UILabel行间距的text.n 这是测试 ...

  8. app兼容性测试的几种方案

    1.统计自己的应用被使用的数据 通过友盟或Flurry等在应用嵌入,得到应用在哪些机型上被安装了,排名前十的就是测试的重点机型 2.可参考兼容性测试平台的测试结果 比如Testin或百度的MTC平台, ...

  9. XTU 1249 Rolling Variance

    $2016$长城信息杯中国大学生程序设计竞赛中南邀请赛$G$题 前缀和. 把公式化开来,会发现只要求一段区间的和以及一段区间的平方和就可以了. #pragma comment(linker, &quo ...

  10. 跑github上的Symfony项目遇到的问题

    Loading composer repositories with package information Installing dependencies (including require-de ...