步骤一:确保你的本地分支是最新的
# 确保当前在你的功能分支上
git checkout feature/dev-code-fangyun
# 拉取远程仓库最新变更
git pull origin feature/dev-code-fangyun
原理:这一步确保你的本地分支包含所有远程仓库的最新提交,避免后续合并时遗漏变更。
步骤二:获取目标分支的最新代码
# 获取所有远程分支的最新信息
git fetch origin
原理:fetch 命令从远程仓库下载所有分支的最新提交信息,但不会自动合并。这让你可以在合并前了解目标分支的最新状态。
步骤三:切换到目标分支并更新
# 切换到目标分支
git checkout feature/dev
# 确保目标分支是最新的
git pull origin feature/dev
原理:在合并前,你需要先切换到目标分支(feature/dev)并确保它是最新的。这样可以避免合并后再次拉取时出现冲突。
步骤四:将你的功能分支合并到目标分支
# 在feature/dev分支上,合并你的功能分支
# 在feature/dev分支上,合并你的功能分支并添加提交信息
git merge feature/dev-code-fangyun -m "合并主题管理功能:添加树形结构、支持部分字段更新和优化删除逻辑"
原理:merge 命令将指定分支(你的功能分支)的所有提交合并到当前分支(目标分支)。Git 会自动创建一个新的合并提交,记录这两个分支的历史。
步骤五:解决可能的合并冲突
如果有合并冲突,Git 会提示你。你需要:
# 查看冲突文件
git status
# 编辑冲突文件,解决冲突
# 在文件中查找 <<<<<<, =======, >>>>>> 标记,手动解决冲突
# 标记冲突已解决
git add <冲突文件路径>
# 完成合并
git commit
原理:当两个分支修改了同一文件的同一部分时,Git 无法自动决定保留哪个版本,这时需要手动解决冲突。Git 会在冲突文件中用特殊标记(<<<<<<<, =======, >>>>>>>)标示不同版本的内容,你需要编辑文件保留正确的内容。
步骤六:推送合并结果到远程仓库
# 推送合并后的目标分支到远程仓库
git push origin feature/dev
原理:push 命令将本地分支的提交上传到远程仓库,使远程分支与本地分支同步。这样,你的功能分支的变更就正式合并到了项目的总分支中。
额外选项:使用 Pull Request(推荐)
在大多数团队项目中,不会直接合并到主分支,而是创建 Pull Request(GitHub)或 Merge Request(GitLab):
- 在 GitHub/GitLab 上创建一个从 feature/dev-code-fangyun 到 feature/dev 的 Pull Request
- 邀请团队成员审核代码
- 通过 Web 界面完成合并
原理:Pull Request 提供了一个代码审核的过程,确保合并的代码质量,同时也便于团队讨论和记录变更。
完整流程总结
整个合并过程遵循以下原则:
- 确保所有分支都是最新的
- 在目标分支上进行合并操作
- 解决可能的冲突
- 将结果推送到远程仓库
这些步骤确保了合并过程的顺利进行,并维护了清晰的提交历史。
补充:
Git的默认文本编辑器(通常是Vim或Vi),它正在等你输入合并提交信息。以下是你需要做的:
- 输入合并提交信息:
- 按下键盘上的 i 键进入插入模式(屏幕底部可能会显示”INSERT”)
- 删除所有以 # 开头的注释行(或保留它们,因为Git会自动忽略)
- 在第一行输入你的合并提交信息,例如:textApply to ThemeAdminAP… 合并主题管理功能:树形结构、部分字段更新和删除优化
- 如果需要,可以添加更多详细信息,每行一个要点:textApply to ThemeAdminAP… – 实现主题树形结构API – 支持主题部分字段更新 – 优化主题删除逻辑,清除关联引用 – 修复主题排序功能
- 保存并退出:
- 按下 Esc 键退出插入模式
- 输入 :wq 然后按 Enter 键(w表示写入/保存,q表示退出)
如果你不熟悉Vim/Vi编辑器,这些是基本操作:
- i – 进入插入模式,可以开始输入文本
- Esc – 退出插入模式,进入命令模式
- :wq – 保存并退出
- :q! – 不保存退出(如果你想取消合并)
完成这些步骤后,Git会继续执行合并操作,并使用你提供的信息作为合并提交的描述。







