全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-11 7 分钟 ✍️ juanwangdev

git merge 合并分支

git merge 命令将一个分支的变更合并到当前分支。

基本用法

Bash
# 合并指定分支到当前分支
git merge <branch>

# 合并 feature 到 main
git checkout main
git merge feature

合并流程

Bash
# 1. 切换到目标分支(接收合并的分支)
git checkout main

# 2. 合并源分支
git merge feature/login

# 3. 处理冲突(如果有)
# 手动编辑冲突文件

# 4. 提交合并结果
git add .
git commit -m "Merge feature/login"

合并类型

类型说明产生结果
快进合并目标分支无新提交直接移动指针
普通合并两个分支都有提交创建合并提交
冲突合并同文件不同修改需手动解决

快进合并

Bash
合并前:
main:    A → B → C
feature: A → B → C → D → E

合并后:
main:    A → B → C → D → E  (指针直接移动)
Bash
# Git 自动执行快进合并
git merge feature
# Fast-forward

普通合并

Bash
# 禁止快进合并,创建合并提交
git merge --no-ff feature

# 合并提交结构
#    A → B → C → M (merge commit)
#               ↗
#    A → E → F

处理合并冲突

Bash
# 冲突时的文件内容
<<<<<<< HEAD
当前分支的内容
=======
要合并分支的内容
>>>>>>> feature

# 解决步骤:
# 1. 编辑文件,保留需要的内容
# 2. 删除冲突标记
# 3. git add <file>
# 4. git commit

冲突解决示例

Bash
# 原冲突内容
<<<<<<< HEAD
console.log("Hello");
=======
console.log("Hi");
>>>>>>> feature

# 解决后
console.log("Hello");

常用选项

text
# 禁止快进,创建合并提交
git merge --no-ff feature

# 强制快进
git merge --ff-only feature

# 查看合并结果但不提交
git merge --no-commit feature

合并冲突时冷静处理,理解两边的修改意图后选择正确的合并结果。

要点总结

  1. 先切换到目标分支再执行合并
  2. 快进合并:直接移动指针,无合并提交
  3. --no-ff 创建合并提交,保留分支历史
  4. 冲突时手动编辑文件解决,再提交
  5. 冲突标记:<<<<<<< ======= >>>>>>>

📝 发现内容有误?点击此处直接编辑

← 上一篇 git checkout 切换分支
下一篇 → 分支概念理解
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库