合并多个commit记录
场景:
(1) 在自己的开发分支上开发一个功能提交多次,有多个commit
,想将多次提交的commit合并成一个commit
,方便代码管理。 例如将最近四次提交的commit
合并成一个
(2) 将dev
分支或者很多零散的分支merge
到一个公共release
分支里。
方式一:
使用 git merge --squash
举例:
开发分支: develop_test
上线分支: release_brand
在线上分支release_brand上面合并develop_test,使用命令 git merge --squash develop_test
;
方式二:
使用 git rebase
1、查看提交历史,git log
首先你要知道自己想合并的是哪几个提交,可以使用git log命令来查看提交历史,假如最近4条历史如下:
commit 3ca6ec340edc66df13423f36f52919dfa3......commit 1b4056686d1b494a5c86757f9eaed844......commit 53f244ac8730d33b353bee3b24210b07......commit 3a4226b4a0b6fa68783b07f1cee7b688.......
历史记录是按照时间排序的,时间近的排在前面。
2、git rebase
想要合并1-3条,有两个方法
1.从HEAD版本开始往过去数3个版本
git rebase -i HEAD~3
2.指名要合并的版本之前的版本号
git rebase -i 3a4226b
请注意3a4226b这个版本是不参与合并的,可以把它当做一个坐标
3、选取要合并的提交
1.执行了rebase命令之后,会弹出一个窗口,头几行如下:
pick 3ca6ec3 '注释**********'pick 1b40566 '注释*********'pick 53f244a '注释**********'
2.将pick改为squash或者s,之后保存并关闭文本编辑窗口即可。改完之后文本内容如下:
pick 3ca6ec3 '注释**********'s 1b40566 '注释*********'s 53f244a '注释**********'
3.然后保存退出,Git会压缩提交历史,如果有冲突,需要修改,修改的时候要注意,保留最新的历史,不然我们的修改就丢弃了。修改以后要记得敲下面的命令:
git add . git rebase --continue
如果你想放弃这次压缩的话,执行以下命令:
git rebase --abort
4.如果没有冲突,或者冲突已经解决,则会出现如下的编辑窗口:
# This is a combination of 4 commits.
#The first commit’s message is:
注释......
# The 2nd commit’s message is:
注释......
# The 3rd commit’s message is:
注释......
# Please enter the commit message for your changes. Lines starting # with ‘#’ will be ignored, and an empty message aborts the commit.
5.输入wq保存并推出, 再次输入git log查看 commit 历史信息,你会发现这两个 commit 已经合并了。
合并多个commit记录相关推荐
- git——合并分支commit记录 squash提交
在公司和别人协同合作时,作为开发需要向架构或者负责人提交mr以合并代码,为了提高review效率,有些负责人会要求一个mr仅保留一条commit记录方便代码比对review的观看,但是开发常常是很多需 ...
- 使用Git rebase合并多条提交记录commit。以及使用 git commit amend本地提交直接合并到远程已有commit的用法
需求场景一 : 对某个小的功能点进行多次反复的修改提交,且已经提交到远程,导致commit记录过多,太过于杂乱无章,想要精简合并一些提交记录. 场景还原: 比如下图4个git commit记录,log ...
- git commit —amend_Git之修改commit记录
在很多影视作品里,就算主人公乘上了时光鸡,还是无法修改历史(或者说修改后造成十分严重的后果):而现在,在 Git 的强力驱动下,修改历史变得简单又相对安全. 本文叨叨修改 commit 历史的问题 应 ...
- git合并多个commit
在使用 Git 作为版本控制的时候,我们可能会由于各种各样的原因提交了许多临时的 commit,而这些 commit 拼接起来才是完整的任务.那么我们为了避免太多的 commit 而造成版本控制的混乱 ...
- git 如何清理操作日志_git如何清空所有的commit记录
为什么要清空 git 中的 commit 记录? 大多数开发者喜欢在 github 创建自己的 Repository,而后进行持续开发,然后就是不断的 add.commit.push 等,中间难免会把 ...
- git合并多个commit成为一个commit
git合并多个commit成为一个commit 在git使用中,可能会在合并代码的时候有大量的commit,如何能在合并分支的时候将许多commit转化为1个commit呢,可以使用以下命令: git ...
- Git合并最近的commit
合并commit的做法一般用在pull request的时候,把开发同一功能时的所有琐碎的commit合并到一个(假装自己的代码是高质量代码(手动滑稽)).主要使用的命令是git rebase 或者g ...
- 把多个不连续的commit合并成一个commit
场景 1.多个commit是同一个功能(需求). 2.为了log信息更简洁. 3.代码管理更方便. 步骤 1.查看commit历史 2. 使用git rebase -i <需要合并的commit ...
- git 几个commit点合并成一个commit点
在用git做版本控制器的时候,经常会遇到以下情况: 1.在做1个功能的时候,你自己觉得代码没问题了,就本地commit,然后提交代码,在gitlab上发起和并请求,老大看完之后,觉得你还有修改的地方, ...
最新文章
- 2019.01.07|区块链技术头条
- python交互式和文件式区别_Python中的交互式数据可视化与Bokeh(系列五)
- 学计算机广东2B大学,2021年广东省较好的2B大学排名,广东2B大学排名出炉
- 授人以鱼不如授人以渔
- hnu暑期实训之数塔 巧妙地设定一个偏移量
- java递归实现汉字组词穷举_Javascript迭代、递推、穷举、递归常用算法实例讲解...
- java 银行帐号_Java 根据银行卡号获取银行名称以及图标
- 软件测试计算机硬件 64,《计算机系统与系统软件》用AIDA64测试上机报告
- Android 仿美团GridView分页滑动(类似直播礼物列表效果)
- 前端合并单元格(行合并、列合并)
- 计算机室教师使用制度,[最新]教师计算机室管理制度
- 从又苦又累的销售工作到python程序员,我哭了
- atm机存款场景图_atm存钱(自动存款机存钱演示图)
- ggplot 直方图(histogram)
- Dijkstra算法 详细讲解
- 虚拟机的Nginx安装配置
- git学习之:如何将远程代码强制拉取同步(覆盖)到本地文件夹
- Visio画图-visio 2007中的布局与排列间距在哪里
- zend studio php mvc,Zend Studio使用教程:使用Zend Studio和Zend Server进行根本原因分析 (一)...
- 数据可视化项目---订单分类占比图
热门文章
- 机器学习算法Python实现:tfidf 特征词提取及文本相似度分类
- 052、overlay如何实现跨主机通信?(2019-03-19 周二)
- 浅谈前端实现页面加载进度条以及 nprogress.js 的实现
- MAC使用终端DISKUTIL命令给U盘分区(解决window优盘只有200M)
- 一、从零创建VUE项目
- 程序员面试什么最重要?
- virtual machine(vmware)知识
- Linux下怎么创建和进入带有空格的文件夹
- 华章揭秘系列精品图书(《Android应用开发揭秘》、《GWT揭秘》、《Spring技术内幕》)...
- 杜新会一个精彩占例之反推