Git分支

git
1.3k 词
Git分支解析

Git分支#

概念:本质上是指向 提交节点 的可变指针,默认名字是master

注意:HEAD指针影响工作区/暂存区的代码状态

一个库可能有多个分支,所以有一个HEAD指针指向其中之一,代表当前分支

分支使用场景:开发 新需求/修复bug ,保证主线代码随时可用,多人协同开发提高效率

例如:在现有代码上创建分支完成内容列表业务

再比如,突然需要紧急修复bug-单独创建分支解决bug

对于一个项目中的多个业务模块,可以创建多个分支,由不同人员协同开发,且不会影响主分支

模拟测试#

需求:创建内容列表content分支,并产生3次提交记录

  1. 创建分支命令: git branch 分支名
  2. 切换分支命令: git checkout 分支名
  3. 工作区准备代码并暂存提交,重复3次

创建和切换分支

模拟创建一个content页面文件夹,放入1,2,3.txt文件分别模拟html、css、js

每创建一个暂存提交一次,形成content分支下3个版本

然后我们来看一下版本log

可以发现, master 分支依旧保留, HEAD 已指向 content 分支,其下创建了3个版本

git checkout master切换回master分支后就会发现创建的content及其下的三个文件不见了,是因为它们是在创建content分支后被创建的,在这之前的master分支自然不存在这几个文件

分支-合并与删除#

将content分支合并回到master分支并删除content分支

步骤:

  1. 切回到要合入的分支上: git checkout master
  2. 合并其他分支过来: git merge content
  3. 删除合并后的分支指针: git branch -d content

切换master分支并合并

合并后可以发现,尽管切换到master分支,在当前库根目录下content分支创建的三个测试文件依旧存在,说明合并成功

分支最新代码已合并到master,接下来将多余的分支删除

分支-合并与提交#

合并提交:发生于 原分支 产生了 新的提交 记录后 ,再 合并 回去时发生,自动使用多个快照记录合并后产生一次新的提交

分支-合并冲突#

需求1:基于master新建publish分支,修改一个html文件的title标签,并提交一次

需求2:切换到master,也修改html文件的title标签,并提交一次

冲突:把publish分支合并到master,产生合并冲突

概念: 不同分支中,对同一文件的同一部分修改,Git无法干净地合并,产生合并冲突

解决:

  1. 打开vscode找到冲突文件并手动解决
  2. 解决后需要提交一次记录

创建分支并切换

在publish分支修改文档title

提交暂存后切换至master再次修改title

提交暂存后开始合并分支,发现错误

可以点击冲突详情上的四个选项进行选择保留方式,解决冲突后再次提交暂存,即可完成merge合并,此时即可删除多余分支publish

避免方式:

  1. 多与组内成员沟通
  2. 按页面划分不同分支开发
  3. 公共代码在统一文件夹维护
  4. Node等软件版本统一,npm包统一下载