优雅的合并GIT分支
目标
将dev分支合并到main分支,并且不产生“合并提交”。
具体操作
-
确保本地
main分支是最新的:
bashgit checkout main git pull origin main # 获取远程最新的main分支代码 -
切换到
dev 分支并基于main进行变基:
bashgit checkout dev git rebase main # 将dev分支的提交在main基础上重新应用 -
处理可能出现的冲突:
- 若有冲突,解决后执行
git add <冲突文件> - 继续变基过程:
git rebase --continue - 如需放弃:
git rebase --abort
- 若有冲突,解决后执行
-
变基完成后,切回
main分支并快速合并(快进合并,无新提交):
bashgit checkout main git merge dev # 此时main会直接指向dev的最新提交,形成线性历史 -
最后将合并后的
main推送到远程:
bashgit push origin main
总结
这种方式的优势是能保持 main 分支的提交历史线性清晰,避免了普通合并产生的 "合并提交"。如果 dev 分支也需要更新到远程,同样可以推送(可能需要强制推送,建议使用 --force-with-lease 确保安全)。
