博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2步走:使用git rebase -i管理commit history
阅读量:6962 次
发布时间:2019-06-27

本文共 1166 字,大约阅读时间需要 3 分钟。

合并commit的必要性

开发的过程中,我们会提交很多次代码,生成很多commit,比如修改了a文件,又修改了b文件,然后又把a文件改回之前的版本等,commit history中会有很多的无价值的commit,如果把这些commit直接合到master,会导致master的commit history不清晰,有太多的细节和无意义的commit。

如果push或合并分支之前,有意识地把commit合并一下,只留下一个或几个有意义的commit,那么再查看commit history的时候,会清晰很多,回滚的时候也更容易定位commit。

##如何合并commit

合并多个commit可以使用 git rebase 这个命令。分为两步,

第一步,确定合并范围

在项目根目录,启动命令行,输入 git rebase -i,从当前commit开始合并,指定一个要合并到的commit,通过HEAD^^的方式(^的数量就是commit的数量),或者简写成HEAD~x,还可以指定要合并到的commit的前一个commit的id,两者之间就是合并的范围。

第二步,删除、保留、合并commit

确定了范围之后就开始处理了,输入git rebase -i以后会进入 合并commit的界面,

如图列出的就是要处理的commit,每行代表一个,具体的操作如下:

删除某一行代表删掉这个commit, 使用列出的命令代表保留该commit, pick是单独保留这个commit, reword是单独保留这个commit,但是重新编辑commit message, squash代表和前一个commit合并,commit message保留, fixup代表和前一个commit合并,commit message丢弃。 常用的就这四个。

合并的过程中如果遇到冲突,解决后需要git add ,然后 git rebase --continue,如果想中止,使用 git rebase --abort

处理完commit,解决完冲突,合并就结束了,你会发现commit history整洁了很多。

总结

合并commit是保持commit history整洁的必要操作。

可以在push或者合并分支之前使用git rebase -i 进行合并,合并范围的确定需要指定一个边界commit,使用HEAD^^ 或者HEAD~x或者commitId来指定。

确定范围之后合并的方式有很多,可以保留或者删除,保留的话可以使用pick、reword、squash、fixup等命令来合并到前一个或者单独保留。遇到冲突需要解决冲突之后continue。

就这简单的两步,使用git rebase -i 来管理的commmit history,使之更加整洁。

转载地址:http://atwsl.baihongyu.com/

你可能感兴趣的文章
Python在同一位置刷新显示进度信息
查看>>
解决获取微信用户信息 48001错误
查看>>
oracle的内存spa与pga
查看>>
laravel 常用的第三方扩展包
查看>>
使用Lombok来优雅的编码
查看>>
[LeetCode]23. Merge k Sorted Lists
查看>>
CentOS7 配置网卡 虚拟机挂载光盘 搭建本地yum源 修改主机名
查看>>
高性能专业上网行为管理设备WSG-500E开箱评测
查看>>
easyui的分页组件的displayMsg显示的信息不正确
查看>>
MySQL数据库入门——多实例配置
查看>>
ACtiiveMQ安装 Ubuntu
查看>>
四色原则
查看>>
1.sql数据处理问题
查看>>
企业管理:如何规范员工上网行为,提高员工工作效率
查看>>
LINUX创建、删除用户和用户组;修改密码
查看>>
深入理解乐观锁与悲观锁
查看>>
CocoaPods的使用
查看>>
find命令详解
查看>>
变频电源内部IGBT模块的作用是什么样的
查看>>
手机PDF文件怎么压缩得更小,PDF文件如何压缩?
查看>>