惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
罗磊的独立博客
雷峰网
雷峰网
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
爱范儿
爱范儿
B
Blog RSS Feed
腾讯CDC
Apple Machine Learning Research
Apple Machine Learning Research
D
Docker
Recent Announcements
Recent Announcements
T
Tailwind CSS Blog
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Vercel News
Vercel News
小众软件
小众软件
人人都是产品经理
人人都是产品经理
云风的 BLOG
云风的 BLOG
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
I
InfoQ
S
SegmentFault 最新的问题

Aimee's Blog

秒杀怎么防机器人:验证码之外的几道防线 防薅羊毛怎么做:号码风控、设备指纹与分层策略 接口限流怎么选:固定窗口、滑动窗口、令牌桶 批量打包下载怎么设计:流式 ZIP 与异步任务 图片处理怎么做:异步处理与 CDN 实时参数 大文件上传怎么设计:分片、断点续传、秒传 报表可重跑的设计:快照、水位线与幂等 UV 统计为什么有误差:精确计数与近似计数怎么选 大数据量导出怎么做:流式写入与异步任务 排行榜的两类需求,难度差了一个数量级 内容审核怎么选:先审后发,还是先发后审 实时热榜怎么设计:Redis ZSet 与热度分值 互关状态怎么保持同步:双向关系的维护与缓存失效 并发点赞的计数设计:原子操作与最终对账 删了父评论,子评论怎么处理——先想清楚用户看到的是什么 定时消息任务触发了两次 消息量大,写扩散还是读扩散——接到这个需求先问清楚规模 同一条消息推送了三次 活动结束了,用户还在收短信 接到注销需求,先问两个问题 微服务与服务拆分:何时拆、怎么拆 异步与事件驱动架构:把协作从「打电话」改成「发消息」 高可用设计:怎么让系统尽量不宕机 可扩展性设计:怎么让系统加机器就能扛更多 缓存架构:多级缓存怎么搭 高并发三板斧:限流、熔断、降级 架构设计到底在设计什么 —— 从单体到微服务的演进 服务成本账:一个服务一个月烧多少钱 可观测性:线上出问题怎么查 API 设计:好接口长什么样
git rebase
Aimee · 2021-10-26 · via Aimee's Blog

变基的作用就是修改历史,将分支历史并入主线。 ​

常规的项目开发

​ 基于master 分支切一个业务分支 dev。与此同时 dev 提交了两条记录 dev-fix1/dev-fix2, master 分支也提交master-fix1/master-fix2. 此时dev日志开发完成要上线,需要合分支。 ​

常规合分支

// 先切换到master分支
git checkout master

// 合并dev分支到master分支
git merge dev

// 推送到远端
git push

此时 的提交记录分别有 dev 的两条、master的两条。 ​

提交记录如图 image.png

通过变基合分支

// 先切换到dev分支
git checkout dev

// 变基
git rebase master

// 如果遇到冲突 解决冲突并 git rebase --continue

// 切换到master分支
git checkout master

// 合并分支
git merge dev

此时的提交记录图如下,之前的dev的commit记录直接变成了master的提交记录。 image.png

变基的其他参数

git rebase --abort 会放弃合并,回到rebase操作之前的状态,之前的提交不会丢弃;即回到撤销rebase,回到没有pull时的状态。 ​

git rebase --skip 则会将引起冲突的commits 丢弃掉 ​

git rebase --continue 合并冲突,结合 git add 文件 命令一起用于修复冲突,提示开发者,一步一步地有没有解决冲突。 ​

git pull --rebase 相当于 git fetch + fit rebase