# Git分支管理
# 分支管理
几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。 在很多版本控制系统中,这是一个略微低效的过程——常常需要完全创建一个源代码目录的副本。对于大项目来说,这样的过程会耗费很多时间。
# 创建与切换分支
// 创建分支
git branch [branchName]
// 例如创建dev分支
git branch dev
// 切换分支
git checkout [branchName]
// 创建并切换至分支
git checkout -b test
# 分支合并
# 合并git merge
使用git merge的时候,git会将找到两个分支最近的祖先提交,以此为基础将两个分支的修改合并作为一次新的提交。如果冲突了,需要等待处理冲突才可以继续操作。
在合并的时候, 如果当前分支的HEAD是需要被合并的分支的直接下游,那么git会将指针直接向前移动,因为这种情况下的合并操作没有需要解决的分歧,这种被称作快进。
# 变基git rebase
使用这个命令合并分支的时候,git会将当前分支的修改暂存在临时文件中,然后将指针指向被合并的分支最新提交处,然后再将临时文件作为新的修改提交上去。这样当前修改内容就会是最新的提交。
我们来尝试一下
- 默认创建matser分支,
- 基于master创建一个分支a,b
- master上提交一个master
- 分支a上提交 a1,a2,
- master提交一个master2
- 分支b上提交b1
现在本地仓库的版本提交应该如下所示
现在已经测试通过我们将b合并进主干。我们先在分支B上将master2 rebase一下进b.
这个时候分支b上应该是master -> master2->b1,
然后再切换至master,将b合并进master,
这是master上就应该 master->master2->b1了
# 删除分支
// 删除本地分支
git branch -d [branchName]
// 删除远程分支
git push origin --delete serverfix
# 分支管理策略
Git中的分支创建分支灵活,也是其最大的特点与优势。业界已经有了非常成熟的分支管理模型。
如下图源自Gitee上分支模型,相信已经可以满足绝大部分的需求了。