Git如何合并多次提交
作者:帅气的Lucky 发布时间:2023-03-27 13:05:03
Git合并多次提交
有时候需要合并几个提交历史记录为一个提交,该怎么办呢?可以使用 git rebase
!
也可以使用 git reset --soft 或者 git reset --mixed
将多次commit合并为一次commit,可以通过git rebase命令实现
查看历史,确定要合并的提交
git log 或者 git log --oneline
注意:不要合并了其他人的提交,不要合并了其他人的提交,不要合并了其他人的提交
ATTENTION: Do not merge others' commit! Do not merge others' commit! Do not merge others' commit!
git rebase -i *****
其中 ***** 为不需要合并的提交。其中,-i 的参数是不需要合并的 commit 的 hash 值。
也可以使用相对提交,例如我需要合并最近2次提交可以使用(倒数第三次之后的提交会合并,不合并第三次)
git rebase -i HEAD^^^
下面进入编辑页面,选择合并到哪个提交上
pick
的意思是要执行这个commit
squash
的意识是这个commit
会被合并到前一个commit
编辑完保存退出
若无冲突或者冲突已 fix,则会出现一个 commit message
编辑页面,修改 commit message ,然后保存退出。Successfully表示操作成功。
中间可能会出现的情况
git 会压缩提交历史,若有冲突,需要进行修改,修改的时候保留最新的历史记录,修改完之后输入以下命令:
git add .
git rebase --continue
若想退出放弃此次压缩,执行命令:
git rebase --abort
同步到远程 git 仓库
输入:git push -f
或者 git push --force
查看远程仓库效果,多次 commit 已被合并成一次 commit。
Git_合并多次提交记录
使用git rebase将多条提交记录合并成一条
应用场景
公司代码分支在master上,张三接到一个开发任务,需要在master上开发一个新功能,首先张三不能直接使用master分支进行开发,因为张三的开发过程没必要存在于公司主分支master上面,正确的做法是张三新建一个dev分支,张三git merge master获取到master分支上的最新代码,然后张三所有的开发都在这个dev分支上,开发完成后把dev分支上的所有过程打包成一条记录,再推到主分支上。
1、在dev分支上查看已经开发了6条记录了,我们需要把这6条记录合并起来
2、git rebase -i db2c1c847c80ca4943ea04a49ccdf2e95b307b1a
这个是git的默认编辑器(vim)首先点击i进入编辑模式(最下面出现-- INSERT --)
把这6条记录的其中五条都屏蔽掉,只保留一个
然后按esc键退出编辑模式,按shift+;进入命令输入模式,输入wq保存退出
3、合并之后的记录使用的commit,同样也是屏蔽5个保留一个
4、当出现Successfully rebased and updated refs/heads/dev.表示合并成功了
5、回到master分支,把dev分支merge到主分支就好了,然后git log检查一下看到就剩一条记录了
来源:https://www.cnblogs.com/xialigang/p/15672681.html
猜你喜欢
- MySQL数据库是一款非常好用的数据库管理系统,但是相对来说卸载起来麻烦一些这里给大家分享下MySQL数据库如何卸载干净~1 停止MySQL
- 本篇,我们学习PyQt5界面中拖放(Drag 和Drop)控件。拖放动作在GUI中,拖放指的是点击一个对象,并将其拖动到另一个对象上的动作。
- python软件免费吗?python是免费的,是自由、开放源码的软件之一,在python官网可以免费下载,使用者可以自由地发布这个软件的拷贝
- 一、默认参数python为了简化函数的调用,提供了默认参数机制:def pow(x, n = 2):r = 1 while n > 0
- pycharm 2020.1.2激活工具下载以及破解方法 免费可用至2089年需要提前安装好IDEA,官网下载地址:https://www.
- vue使用this.$confirm首先在element-ui中的el-table下的el-table-column中引入插槽(相当于占位符
- 1、开始->运行,输入SERVICES.MSC到服务里,停止所有Oracle服务; 2、开始->程序->Oracle - OraHome81
- 目录简介创建ndarrayndarray的属性ndarray中元素的类型转换ndarray的数学运算index和切片基本使用index wi
- 首先说下Golang中的结构体,结构体是由一系列具有相同类型或不同类型的数据构成的数据集合,Golang中使用关键字struct来创建一个结
- 搞了一个DIV+CSS菜单,兼容Firefox,分享给大家,大家一齐学习 <!DOCTYPE html PUBLIC "-/
- NumPy提供了多种存取数组内容的文件操作函数。保存数组数据的文件可以是二进制格式或者文本格式。二进
- 1.业务场景有如下树形结构: +—0 +—1 +—2 +—4 +—5 +—3如果删除某个父节点,则其子节点,以及其子节点的子节点,以此类推,
- 使用到的库: dlib+Opencv python版本: 3.8 编译环境: Jupyter Notebook (Anaconda3)0.D
- 本文主要介绍的是MySQL慢查询分析方法,前一段日子,我曾经设置了一次记录在MySQL数据库中对慢于1秒钟的SQL语句进行查询。想起来有几个
- 创建临时表,往临时表插入数据的时候报的错误。一开始提示没有打开主键,后来打开主键就提示上述错误异常。从网上查找资料没有找到,然后又到群里问各
- 前言shape函数是Numpy中的函数,它的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度。直接用.shape可以快速
- PHP crypt() 函数定义和用法crypt() 函数返回使用 DES、Blowfish 或 MD5 算法加密的字符串。在不同的操作系统
- 1、余弦相似度余弦相似度衡量的是2个向量间的夹角大小,通过夹角的余弦值表示结果,因此2个向量的余弦相似度为:余弦相似度的取值为[-1,1],
- 本文实例讲述了JavaScript实现五子棋游戏的方法。分享给大家供大家参考,具体如下:最近半个月一直在看深入的学习JavaScript,里
- 前面的话发布一个版本时,我们通常先在版本库中打一个标签(tag)。这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就