引言
Git 是当今软件开发领域中最常用的版本控制系统之一,它为团队协作和代码管理提供了强大的工具,像我们这次青训营即使是同一个小组的成员也可能来自天南海北,需要善用Git的各种功能以实现和方便我们的项目开发。而分支(Branch) 是 Git 的重要特性之一,它能够帮助我们更有效地管理代码变更和协作开发。
本篇笔记将着重介绍 Git 中分支的创建与合并。
什么是分支?为什么要使用分支?
分支(Branch) 是将代码库的不同版本分割开来的一种方式。它将将代码从主线上分离,每个分支都代表了代码库的一个独立状态,可以在各个分支上进行独立的开发工作而不会影响其他分支的代码。分支的优点如下:
- 并行开发: 不同的团队成员可以在独立的分支上开展工作,避免了彼此的干扰。这有助于提高开发效率,同时保持主线代码的稳定性。
- 功能隔离: 每个分支可以专注于特定的功能或任务。这样一来,可以更容易地跟踪进度、测试和调试,而不会对主线代码产生负面影响。
- Bug 修复: 如果主线代码中出现了 Bug,可以在一个单独的分支上进行修复,而不会影响正在进行的其他部分的工作。
- 版本控制: 使用分支可以轻松地管理不同版本的代码,便于回溯和比较。
如何创建分支?
1. 将远程仓库的项目克隆到本地
首先要将远程仓库的项目克隆到本地,克隆操作会创建一个本地副本,然后我们就可以利用这个副本先在本地计算机进行开发和修改,最后再将更改推送回远程仓库。
在Git Bash中输入下面的命令即可克隆仓库项目:
git clone <仓库url> <本地目录名>
仓库的url一般能在仓库界面找到,下面以github为例:
在执行上述命令后,我们就拥有了一个本地副本,可以利用下述命令快速进入克隆项目的目录:
cd <本地目录名>
2. 创建新分支
有了本地副本,我们就可以使用下面的命令创建属于自己的分支:
# 切换到主要分支(一般是 main 或者 master)
git checkout main
# 从远程仓库拉取最新代码
git pull origin main
# 创建分支
git checkout -b <开发分支名>
克隆下来的项目会自动与远程仓库建立关联,远程仓库会被自动添加为一个名为 origin 的远程仓库配置,当我们本地项目的基础上创建一个新的分支时,这个新分支也会默认与 origin 远程仓库关联,我们可以使用这个新分支与远程仓库进行交互。
如果本地项目不是通过 git clone命令克隆下来的,也可以通过 git remote add 命令,在一个已有的仓库中添加一个新的远程仓库作为关联:
git remote add <远程仓库别名> <远程仓库url>
3. 提交到分支
接下来我们就可以在新分支上进行代码编写和测试,修改完成后使用 git add .命令,将所有修改的文件添加到暂存区(Staging Area),再使用 git commit 命令将暂存区中的修改提交到本地版本库中,形成一个新的提交记录:
git add .
git commit -m "提交信息"
4. 切换分支
可以使用以下命令查看当前仓库中存在的所有分支:
git branch
使用以下命令来切换到另一个已存在的分支:
git checkout <分支名>
当前所在的分支可以通过下图所示的位置看到:
5. 记得保持更新
在开发过程中,其他团队成员可能也在同一项目上工作,为了保持分支的最新状态,我们应该利用下面的命令定期将主线代码合并到当前分支:
# 切换回主线并拉取最新代码
git checkout <主线分支名>
git pull origin main
# 切换回开发分支并合并主线代码
git checkout <开发分支名>
git merge <主线分支名>
6. 合并分支
当本地开发完成并经过代码审查后,就可以将分支合并回主线(通常是 master 或 main 分支)。在合并之前,最好使用再次使分支代码与主线同步:
# 切换回主线并拉取最新代码
git checkout main
git pull origin main
# 切换回开发分支并合并主线代码
git checkout <开发分支名>
git merge main
# 合并分支
git checkout main
git merge <开发分支名>
也可以使用以下命令将修改推送到远程仓库:
git push origin <开发分支名>
再手动在远程仓库中选择要合并的分支,提交合并请求。
心得
在青训营项目的开发过程中我第一次使用了Git的分支功能,之前注册了github只是在网站上闲逛,看其他人的项目,日常用到Git的场合也不过是往hexo+github搭建的个人博客上传笔记,这次创建了自己的分支并成功将自己开发的部分与源项目合并,在收到“已合并”的邮件提醒时,感觉自己负责开发的接口就像是一颗小齿轮被嵌入项目这个庞然大物之中,与其他“齿轮”咬合、开始旋转。在学习Git的过程中,四处查了很多资料,希望自己总结的这篇笔记页可以帮助到更多的人。
— — 笔记内容仅供参考,如有错误欢迎指出 — —