← [ BACK_TO_NOTES ]

Git中的merge和rebase

说明 Git 中 merge 和 rebase 的区别、各自适用场景,以及它们对历史结构的影响。

#concept #growing #ops #git

[!info] related notes

merge and rebase

git merge vs git rebase

特性git mergegit rebase
提交历史保留分支历史,产生合并提交线性历史,重写提交历史
冲突处理一次性解决所有冲突逐个提交解决冲突
使用场景功能分支合并到主分支整理提交历史,同步主分支
协作影响对已推送的提交安全不要对已推送的提交使用

Merge 示例

git checkout main
git merge feature/login
# 产生一个合并提交

Rebase 示例

git checkout feature/login
git rebase main
# 将 feature/login 的提交重新应用到 main 之上

什么时候优先用 merge

  • 多人共享同一个功能分支
  • 需要明确保留分支合并点
  • 团队约定禁止改写已经推送的分支历史

什么时候优先用 rebase

  • 你在单人维护功能分支
  • 只是想把当前分支同步到最新 main
  • 希望最终进入 main 的历史尽量线性

这里常见的目标是:先把功能分支 rebase 到最新 main,再让 main 以 fast-forward 方式接住这条分支。fast-forward 本身的定义和判断条件见 Git 中的 fast-forward merge。

如果你要执行“先 rebase,再 fast-forward 合并回 main”的具体步骤,直接看 用 Rebase 把功能分支线性合并回 main。

创建于 2025/1/1 更新于 2026/7/15
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本