Idea--git合并多次commit为一个(合并提交)--实例
原文网址:Idea--git合并多次commit为一个(合并提交)--实例_IT利刃出鞘的博客-CSDN博客
简介
说明
本文用实例介绍如何合并git的提交。用Idea可视化和命令行操作两种方法进行展示。
为什么需要合并提交
实际开发会有这种场景:开发在开发分支修复了某个bug,但提交了多个commit,将它cherry pick到测试分支很麻烦,如果只将一个提交cherry pick到测试分支就会很方便。
action含义
pick:git会应用这个补丁,以同样的提交信息(commit message)保存提交
reword:git会应用这个补丁,但需要重新编辑提交信息
edit:git会应用这个补丁,但会因为amending而终止
squash:git会应用这个补丁,但会与之前的提交合并
fixup:git会应用这个补丁,但会丢掉提交日志
exec:git会在shell中运行这个命令
方案1:使用Idea
实例
需求描述
下边红框里的3此提交已经push到远程仓库,现在想把它合并为一条,这样方便cherry pick到其他分支。
第1步:在首次提交记录上rebase
本处的首次提交是“第1次修改”。
右键“第1次修改”=> Interactively Rebase from Here
第2步:合并提交(选squash或fixup)
选中“第2次修改”=> 点击“Squash”
选中“第3次修改”=> 点击“Squash”
这里也可以ctrl+A,然后点击“Squash”,效果一模一样。
结果如下:
- 第1次提交默认是“pick”。本处Idea无法设置,写死是pick
- Reword:可以修改单个的提交信息
- Squash那个下拉还可以选择“fixup”。
第3步:重命名提交
选中“第1次修改”=> Reword=> 输入新的提交信息
修改“第1次提交”为:“第1,2,3次提交”,改完效果如下
第4步:执行rebase
点击上边一步的“Start Rebasing”之后,提交结果如下:(3条提交合并为了一条)
第5步:push
本步我采用Force Push,因为这个bug分支只有我自己改。
如果他人也在这个里边,要用Merge,见下方“push详解”。如果与别人在同一个分支,还Force Push,会覆盖别人的代码,小心被套麻袋挨打
Idea--git合并多次commit为一个(合并提交)--实例相关推荐
- git 合并多次commit
如果当前分支提交了多次commit,无法merge到master上,就需要合并多出的几次commit 第一步 查看log: git log 通过log我们发现,我们想合并红框中的两次commit, 第 ...
- idea取消comiit_IDEA 合并多次commit为一个?
答完以后我只想吐槽下,这种操作还是命令行里来的方便.答案里提供了3种操作流程,个人习惯第2种方式,但这个只适合压缩最后n个commit的情况.第一种方式最佳,建议熟练掌握.第三种方式纯粹蛋疼,可以不看 ...
- git 相同commit_Git 合并多次 commit 、 删除某次 commit
Git 合并多次 commit 有时候在一个分支的多次意义相近的 commit,会把整个提交历史搞得很混乱,此时可以将一部分的 commit 合并为一个 commit,以美化整个 commit 历史, ...
- git 合并多次提交
文章目录 1 为何要合并多次 commit 2 导致多次 commit 的场景 3 合并本地多次提交 3.1 做3次提交 3.2 开始合并 3.3 rebase 完成后本地 log 3.4 git p ...
- git合并多次提交为一次提交
** 背景 ** 有时候新人在git上提交代码时,如果不符合要求,会出现反复修改,导致提交次数过多,无法形成有效提交和回退,因为可能中间提交的版本有问题.所以查找一下是否有合并多次提交为一次有效提交的 ...
- Git合并多次commits
今天遇到了需要合并git分支的情况,搜索研究了一下,整理了两种方式: 1.IDE上操作git合并.我这里用的是phpstorm,就只介绍下phpstorm上合并分支的操作. 选中需要合并的分支,点击右 ...
- 使用Git将我的最后一个X提交一起压缩
如何使用Git将最后的X个提交一起压缩为一个提交? #1楼 根据克里斯·约翰森的回答 , 从bash添加全局" squash"别名:(或Windows上的Git Bash) git ...
- git、sourcetree commit 到HEAD分支提交代码出现的的问题
今天提交的时候,莫名其妙的出现了HEAD分支,我也没注意看,写提交内容,提交并且推送远程,完事仔细一看本地代码,是旧代码(卧槽,心里一万个草腻马)怎么回事,我三天写的代码就这样被干没了?以往我都没提交 ...
- 从git commit号码 revert_git revert amp; git rebase amp; commit 分支图
今天学了几个git技巧,分享下: 问题一:上线后的代码出现问题,如何回滚代码? 代码合入master之后,上线发现有问题,其他同事也等待上线,怎么办? 使用git revert .参考 How to ...
最新文章
- linux sit0 wifi,I.MX6 AW-NB177NF wifi HAL 调试修改(示例代码)
- java值传递试题_面试题:java参数传递 | 学步园
- 佛山市南海技师学校计算机类,佛山南海信息技术学校2021年有哪些专业
- 3 View - 状态保持 session
- 取磁碟名稱 c++_安徽CDCSCONT PLUS/R/C/E生产厂家,联锁板生产厂家
- windows下python3用pip安装kivy和kivy示例
- prim算法_数据结构 7.4.1 最小生成树 Prim
- 魔方机器人之下位机编程-----两种串口通信方式的比较
- DM6437的学习过程
- 打印机显示服务器脱机是什么原因,脱机使用打印机是什么意思?脱机打印机状态显示错误怎么办...
- Vue+element搭建后台管理系统-二、安装插件
- php阴阳万年历转换的接口,PHP编程实现阳历转换为阴历的方法实例
- 【物理学术竞赛】——绳上的球(再续)
- 教师使用计算机备课,计算机教师备课的几点看法
- 用devc++表白_「你表白,我宠你」520—实验猿的表白日,小析姐的“宠粉”节
- 小程序swiper 自定义样式修改
- Given a binary search tree with its preorder traversal sequence { 8, 2, 15, 10, 12, 21 }.…
- 洛谷-P1314-聪明的质检员
- PN532NFC模块串口通信使用教程
- 解决Ubuntu无线网卡突然无法连接