# 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

现在本地仓库的版本提交应该如下所示
rebase1.png

现在已经测试通过我们将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上分支模型,相信已经可以满足绝大部分的需求了。

branchManage.png

# 参考资料

Git pro 中分支管理

Git中分支管理策略

Last Updated: 3/21/2020, 3:58:50 PM