你可能忽略的git高阶用法

🌟 关注「嵌入式软件客栈」公众号 🌟,解锁实战技巧!💻🚀

在日常软件开发中,Git 的 rebase(变基)功能被越来越多的开发者所采用。与传统的 merge 相比,rebase 能让提交历史更加清晰、线性,极大提升代码管理和协作效率。

rebase的原理

rebase 的核心作用是“重新应用提交”,即将某一分支上的提交“平移”到另一分支之上,从而让提交历史变得更为线性、整洁。

rebase 与 merge 的对比

rebase
merge
feature: D'-E'
master: A-B-C
feature: D-E
master: A-B-C
merge: F
  • merge:保留分支历史,产生“分叉”与“合并”节点,历史复杂。
  • rebase:将 feature 分支的提交“平移”到 master 之后,历史线性,便于追溯。

rebase的常见用法

基本用法:分支变基

假设你在 feature 分支开发,master 有新提交:

git checkout feature
git rebase master

这样,feature 分支的提交会“接”在 master 最新提交之后。

交互式 rebase:整理提交历史

交互式 rebase 可用于合并、拆分、重排、修改提交信息等:

git checkout feature
git rebase -i HEAD~4

弹出编辑界面后,可选择 squash(合并)、edit(修改)、reword(重写信息)等操作。

拉取时自动变基

避免无意义的 merge commit,可用:

git pull --rebase

这样本地提交会自动“平移”到远程分支最新提交之后。

多人协作下的 rebase

多人协作时,rebase 可让每个人的提交历史更清晰,但切记不要对已推送到远程的公共分支做 rebase,否则会导致历史重写,影响他人。

rebase提升协作效率

整理零散提交,提升代码审查体验

开发新功能时,常常会有多次零散提交。通过交互式 rebase,可将多个相关提交合并为一个,便于代码审查:

git rebase -i HEAD~5
# 将多次“fix typo”、“update log”合并为一次“feat: 完善登录功能”

解决分支长期未同步导致的冲突

长期开发的 feature 分支,master 频繁更新,直接 merge 会产生大量冲突和冗余历史。使用 rebase 可逐步解决冲突,保持历史整洁:

git checkout feature
git rebase master
# 每次冲突解决后 git rebase --continue

拉取远程分支时避免无意义的 merge commit

git pull --rebase origin develop

这样本地开发不会产生“merge remote-tracking branch”无意义提交。

关注 嵌入式软件客栈 公众号,获取更多内容
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Psyduck_ing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值