| 特性 | git merge | git rebase |
|---|---|---|
| 操作方式 | 创建一个合并提交 | 将提交历史重新应用到目标分支 |
| 提交历史 | 保留分支结构,有合并提交 | 线性历史,更整洁 |
| 冲突处理 | 一次性解决 | 可能每个提交都需要解决 |
| 适用场景 | 公共分支合并 | 个人分支整理 |
| 安全性 | 安全,不改变历史 | 会改写提交历史 |
示例:
git checkout develop
git merge feature/login
示例:
git checkout feature/login
git rebase develop
rebase后push被拒绝? 因为改写了历史,需要用 git push --force(谨慎使用)。
merge和rebase可以混用吗? 可以,这是常见的混合工作流。
相关路径:继续阅读以下页面可完成下载、安装和使用配置。
不要对已经推送并被他人基于其开发的公共提交做 rebase,否则会改写共享历史。
merge 更安全,因为它不改写已有提交;rebase 更适合整理个人本地分支历史。
逐个提交解决冲突,git add 后运行 git rebase --continue;不确定时用 git rebase --abort。