Git使用:Git中代码怎么合并?直接合并(Merge) 和 变基合并(Rebase + Merge)的区别?

目录

方法 1:标准合并(Merge)

步骤

特点

方法 2:变基合并(Rebase + Merge)

步骤

特点

方法 3:通过 Pull Request(PR)/ Merge Request(MR)

步骤(以 GitHub 为例)

特点

总结

推荐流程


我们在实际开发中会经常使用Git提交代码、合并代码。

以下以“v0.5.0”分支为例:

在 Git 中,将v0.5.0 分支合并到 master 分支通常有两种方式:直接合并(Merge) 或 变基合并(Rebase + Merge)。以下是详细步骤和最佳实践:


方法 1:标准合并(Merge)

适合大多数团队协作场景,保留完整提交历史。

步骤

  1. 确保本地仓库是最新状态
    切换到 master 分支并拉取最新代码:

    git checkout master
    git pull origin master
  2. 合并 v0.5.0 到 master

    git merge v0.5.0

  3. 解决冲突(如果有)

    • 如果合并时提示冲突,手动编辑文件解决冲突,然后标记为已解决:

      git add <冲突的文件>
      git commit -m "解决合并冲突"
  4. 推送合并后的 master 到远程仓库

    git push origin master

特点

  • 保留 v0.5.0 的完整提交历史。

  • 生成一个合并提交(Merge Commit)。

  • 适合团队协作,避免重写历史。


方法 2:变基合并(Rebase + Merge)

适合希望保持线性提交历史的项目(如开源项目)。

步骤

  1. 切换到 v0.5.0 分支并变基

    git checkout v0.5.0
    git rebase master
    • 如果变基过程中有冲突,解决后继续:

      git add <冲突的文件>
      git rebase --continue

  2. 切换到 master 并合并

    git checkout master
    git merge v0.5.0

  3. 推送更新后的 master

    git push origin master

特点

  • 提交历史更干净(线性)。

  • 适合小型团队或单人开发。

  • 注意:变基会重写历史,已推送的分支慎用!


方法 3:通过 Pull Request(PR)/ Merge Request(MR)

适合 GitHub、GitLab 等协作平台,推荐团队使用。

步骤(以 GitHub 为例)

  1. 推送 v0.5.0 到远程仓库

    git push origin v0.5.0
  2. 在 GitHub/GitLab 创建 PR/MR

    • 进入仓库 → Pull Requests → New Pull Request

    • 选择 base: master 和 compare: v0.5.0

    • 填写标题和描述,点击 Create Pull Request

  3. 审核代码 & 合并

    • 团队成员审核代码后,点击 Merge Pull Request

    • 可选择 Merge(标准合并)Squash and Merge(压缩提交) 或 Rebase and Merge(变基合并)

特点

  • 适合团队协作,确保代码审核。

  • 可配置 分支保护规则,禁止直接推送 master


总结

方法适用场景提交历史是否需要冲突解决
直接合并(Merge)团队协作,保留完整历史非线性(有合并提交)
变基合并(Rebase + Merge)个人/小型项目,线性历史线性(无合并提交)
Pull Request(PR)团队协作,代码审核可选(Merge/Squash/Rebase)

推荐流程

  1. 团队协作 → PR/MR 合并(确保代码审核)。

  2. 个人项目 → Rebase + Merge(保持干净历史)。

  3. 紧急修复 → 直接 Merge(快速合并)。

如果有冲突,建议使用 git mergetool(如 VSCode、Meld)可视化解决。 🚀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

浪潮行舟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值