第三章:分支管理与协作
在多人协作的项目中,分支管理是Git的核心功能之一。通过分支,开发者可以在独立的环境中进行开发,而不会影响主分支的稳定性。本章将详细介绍分支的创建、切换、合并以及协作开发的常见流程。
3.1 分支的基本概念
在Git中,分支可以看作是代码仓库的一个独立的开发线程。每个分支都有自己的提交历史,开发者可以在不同的分支上进行开发,最后通过合并操作将分支的更改整合到主分支中。
主分支(main
或 master
)
主分支是项目的默认分支,通常用于存放稳定版本的代码。在现代Git实践中,main
分支逐渐成为默认的主分支名称,但master
分支仍然被广泛使用。
特性分支(Feature Branch)
特性分支用于开发新的功能或修复bug。这些分支通常从主分支创建,并在开发完成后合并回主分支。
3.2 创建分支
创建分支是分支管理的第一步。可以通过以下命令创建一个新的分支:
git branch <branch_name>
示例
假设你正在开发一个新功能,需要创建一个名为feature-login
的分支:
git branch feature-login
3.3 切换分支
创建分支后,需要切换到该分支进行开发。可以通过以下命令切换分支:
git checkout <branch_name>
示例
切换到feature-login
分支:
git checkout feature-login
你也可以通过git checkout -b
命令同时创建并切换到新分支:
git checkout -b feature-login
3.4 查看分支
在开发过程中,经常需要查看当前仓库中的所有分支。可以通过以下命令查看分支:
git branch
示例
git branch
输出示例:
* feature-login
main
当前分支前会有一个*
号,表示当前工作在feature-login
分支上。
3.5 合并分支
当特性分支开发完成后,需要将分支的更改合并回主分支。可以通过以下命令合并分支:
git merge <branch_name>
示例
假设你已经完成了feature-login
分支的开发,需要将更改合并回main
分支:
-
切换到
main
分支:git checkout main
-
合并
feature-login
分支:git merge feature-login
如果在合并过程中没有冲突,Git会自动完成合并操作。如果有冲突,Git会提示你手动解决冲突。
3.6 解决冲突
在多人协作的项目中,冲突是不可避免的。当两个分支对同一个文件的同一部分进行了不同的修改时,就会发生冲突。解决冲突的步骤如下:
-
查看冲突文件:Git会在冲突的文件中标记冲突的部分,通常会看到类似以下的内容:
<<<<<<< HEAD 修改内容1 ======= 修改内容2 >>>>>>> feature-login
-
手动编辑文件:根据实际情况选择保留或合并修改内容。
-
标记冲突解决:编辑完成后,使用以下命令标记冲突已解决:
git add <file_name>
-
完成合并:提交合并操作:
git commit
3.7 删除分支
当分支的更改已经合并到主分支后,可以删除该分支以保持仓库的整洁。可以通过以下命令删除分支:
git branch -d <branch_name>
示例
删除feature-login
分支:
git branch -d feature-login
如果分支尚未合并,Git会阻止删除操作。你可以使用-D
选项强制删除分支:
git branch -D <branch_name>