返回

Git Merge命令:分支合并指南

开发工具

目录

  • Git Merge简介
  • 基本用法
    • Fast-forward Merge
    • Three-way Merge
  • 解决冲突
  • 合并的常见场景
    • 合并功能分支
    • 合并Pull Request
    • 合并远程分支
  • 高级技巧
    • Cherry-Pick
    • Rebasing
    • Merge Tools
  • 总结

Git Merge简介

在版本控制系统中,分支是一个包含提交历史的平行线。我们可以使用分支来同时进行多个任务,而不会影响主干分支的稳定性。当我们需要将不同分支上的修改合并在一起时,就需要使用Git Merge命令。

基本用法

Fast-forward Merge

Fast-forward Merge是最简单的一种合并方式。当两个分支没有冲突时,Git会自动执行Fast-forward Merge。此时,Git会将当前分支的指针直接移动到目标分支的最新提交点,而不会创建新的提交记录。

git checkout branch_name
git merge target_branch

Three-way Merge

当两个分支存在冲突时,Git会执行Three-way Merge。此时,Git会将当前分支、目标分支和它们的最近共同祖先的提交记录进行比较,然后尝试自动合并这些提交记录。如果Git无法自动合并这些提交记录,则会提示用户手动解决冲突。

git checkout branch_name
git merge target_branch

解决冲突

当Git无法自动合并两个分支的提交记录时,就会产生冲突。此时,用户需要手动解决这些冲突。Git会提示用户在冲突的文件中选择要保留的代码,然后用户需要保存这些文件。

git add <file_name>
git commit -m "Resolved conflict in <file_name>"

合并的常见场景

合并功能分支

当我们完成一个新功能的开发后,需要将这个功能分支合并到主干分支上。

git checkout main
git merge feature_branch

合并Pull Request

当我们从远程仓库拉取Pull Request时,需要将Pull Request中的修改合并到本地分支上。

git fetch origin
git merge origin/pull/123

合并远程分支

当我们需要将远程分支上的修改合并到本地分支上时,可以使用以下命令:

git checkout branch_name
git merge remote_branch_name

高级技巧

Cherry-Pick

Cherry-Pick可以将特定提交从一个分支移植到另一个分支。

git cherry-pick <commit_id>

Rebasing

Rebasing可以将当前分支上的提交记录重新排序。

git rebase target_branch

Merge Tools

Merge Tools可以帮助用户解决冲突。

git mergetool

总结

Git Merge命令是Git中最常用的命令之一。熟练掌握Git Merge命令可以帮助我们轻松地合并不同分支上的修改,并保持代码库的整洁和稳定。