优雅的合并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
确保安全)。