万有斥力 发表于 2024-8-14 23:44:38

如何优雅的归并代码

目录

[*]IDEA中的代码归并

[*]写在前面
[*]merge
[*]rebase
[*]cherry-pick


IDEA中的代码归并

归并代码我相信大家都会,但要是一手merge走天下,遇到高手可就要趴下啦!
现代的IDE图形化界面做的很好,git的许多功能原理可以不用了解的那么深刻,只是操作看看就会啦。下面直接上图!
环境:IDEA Community 2024.1
写在前面

下面的许多操作都涉及了提交的变更,若提交还未推送远端不会有问题,但若是已经推送了远端,需要使用强制推送来覆盖。
强制推送存在一定风险,但不需要投鼠忌器,这里推荐使用git push force--with-lease(git >= 1.8.5),相比于git push force,使用上会安全些(当远端其他人推送了新的提交,本次推送会失败)
merge

merge 是代码归并最简单的方式,所有代码归并的情况都可以使用 merge 。归并默认使用的是 fast-foward 模式,如下图所示,当归并两个分支时,若顺着一个分支走下去能到达另一个分支,git 只会移动分支指针,也就是说,不会创建新的 commit 节点。但是这样会丢失归并的信息 ,若想要在任何时候都生存归并信息,可以使用 no-fast-forward 选项。
https://pkte8scs80.feishu.cn/space/api/box/stream/download/asynccode/?code=ZTU4NmJjOTFhZWUzMDQwNTQyZDVjMDM0YjYwOTMzZGRfY1BKbGRjeEtFam9kWEtuaFY4UGo1cWxlS3dENWtVTTVfVG9rZW46VU13WGJ6ZHhtb25xeXh4QWVza2NnVWVBbmxnXzE3MjM2NTMwOTc6MTcyMzY1NjY5N19WNA
当已经完成一次git commit后,发现本身遗漏了一些修改,马上再补充一次 commit 固然可以办理问题,但是会造成提交记录的重复和不雅观。此时,可以考虑使用git commit --amend,该命令会将本次提交内容和上一次提交内容归并为一个提交。
rebase

相比于 merge,rebase 提供了更灵活的归并本事,鉴于现代IDE图形化界面做的很好,这里就直接使用 IDEA 结合一些场景讲下常用的一些 rebase 功能
环境:IDEA Community 2024.1

[*]reword:想要修改、补充提交信息时
https://pkte8scs80.feishu.cn/space/api/box/stream/download/asynccode/?code=NDZlOTc4ZDM1MmUwODhiZjBkZDdkZmZlZWY0NTRjMjhfUVJzdHk4SDl4MUlWWlJIOHhMUkRFT2hqSVJBUG1DQlpfVG9rZW46QVVjYmJYT0lxb0Z5eTh4S0pxZmM1UWdRbkZlXzE3MjM2NTMwOTc6MTcyMzY1NjY5N19WNA

[*]squash/fixup:想要将多个提交归并时
https://pkte8scs80.feishu.cn/space/api/box/stream/download/asynccode/?code=OWU1NDBhZGMzYzRjMmVmZDNlY2NkNTE3Mzg4OTM5ZjBfdW9MeDJKWk85QjZSMEVpVjZYUWJYa3pib1dDQTB0bUpfVG9rZW46Uk9TdmJxSEVIb0FSYzZ4blFnZmNRMUFwbnhmXzE3MjM2NTMwOTc6MTcyMzY1NjY5N19WNA

[*]drop:想要去除某个提交时
https://pkte8scs80.feishu.cn/space/api/box/stream/download/asynccode/?code=OGE1NmU2OWU4NzlmODFlZTk2NmRiODI1NGQ5NjRiYmNfRlowa2JQN0xseXNZWDZxaW96ZG5lcU5JMG1oM0hmRHBfVG9rZW46WGF0TWJMenhxbzFma0p4R2R2VGNtMFRVbmdiXzE3MjM2NTMwOTc6MTcyMzY1NjY5N19WNA

[*]rebase-onto:想要应用父分支的提交到本身的分支
https://pkte8scs80.feishu.cn/space/api/box/stream/download/asynccode/?code=MjhlNjgwZmE5NWQwNGQ0ZmEzNGYzMzg1ODE1YTM4ZmNfZTBxSk04MUVycUZ6TmxGTGE1MWl6MlNGSmdRV2Joc01fVG9rZW46Tkp6OGJ2UzFSb3gycDh4NmNJTWN4SXRsbmhlXzE3MjM2NTMwOTc6MTcyMzY1NjY5N19WNA
cherry-pick

当发现本身的提交写错分支,大概想要快速将另一个分支的某个提交归并到本身的分支,可以考虑使用 cherry-pick。
https://pkte8scs80.feishu.cn/space/api/box/stream/download/asynccode/?code=ZWQ3MDY0MmNmNDA0ZDliZGE1NTI2OTFhZmYzMzg1NzVfOHZEaXhvNTJaRXVoRGFxSTJGOHpnMFZ4RWYzNEJ6dm9fVG9rZW46QUNoSGJGenR5b2RCd0l4ckZmMmNURmo1bmxHXzE3MjM2NTMwOTc6MTcyMzY1NjY5N19WNA

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 如何优雅的归并代码