Git系列--3.分支管理
目录
一、理解分支
1.1图示
1.2 打印仓库下有哪些分支
1.3创建分支
1.4HEAD与切换分支
1.5合并分支
1.6流程图理解
二、删除分支
三、合并分支冲突
3.1.问题导入
3.2.解决
3.3合并图示
四、合并模式
4.1合并编辑
4.2变基
五、bug分支
5.1背景建立
5.2解决步骤
5.2.1保存dev2工作区内容
5.2.2建立bug分支,修改bug并提交与合并到主分支
5.2.3新功能研发,合并到研发分支测试
5.2.4合并到主分支
5.2.5流程图示
六、强制删除分支
一、理解分支
1.1图示
我们可以利用分支在同一时间进行多人并行工作,最后合并到主分支上进行最终管理
1.2 打印仓库下有哪些分支
git branch
1.3创建分支
git branch branchname
1.4HEAD与切换分支
前文提到HEAD指向分支,这里明确HEAD指向主分支(带*的)
//切换HEAD所指的的主分支
git checkout branchname
1.5合并分支
//将branchname合并到当前分支
git merge brancname
1.6流程图理解
二、删除分支
不能在当前分支删除自己
git branch -d brancename
三、合并分支冲突
3.1.问题导入
发生冲突
3.2.解决
手动解决并进行一次提交操作
冲突文件内容,手动修改后提交
3.3合并图示
四、合并模式
4.1合并
git checkout main # 切换到目标分支
git merge feature-branch # 合并源分支
4.2变基
git checkout feature-branch # 切换到源分支
git rebase main # 变基到目标分支
五、bug分支
假如我们现在正在 dev2 分⽀上进⾏开发,开发到⼀半,突然发现 master 分⽀上⾯有 bug,需要解决。在Git中,每个 bug 都可以通过⼀个新的临时分⽀来修复,修复后,合并分⽀,然后将临时分⽀删除。
5.1背景建立
master出现bug--abcde缺少f使程序崩溃

dev2正在研究新功能(未提交)

5.2解决步骤
5.2.1保存dev2工作区内容
由于我们要从master建立bug分支进行修改,所以我们要保存dev2工作区内容,防止被新分支修改(dev2上内容为临时内容会被master看见)
//在dev2分支上:
git stash
5.2.2建立bug分支,修改bug并提交与合并到主分支
git checkout master
git checkout -b fix_bug
git add .
git commit -m ""
git cheackout master
//--no-ff No Fast Forward模式
git merge --no-ff branchname
5.2.3新功能研发,合并到研发分支测试
git stash pop
//恢复工作区内容
git merge --no-ff master
//合并到研发分支测试
git checkout master
git merge --no-ff dev2
5.2.4合并到主分支
5.2.5流程图示
六、强制删除分支
如果我们今天正在某个 feature 分⽀上开发了⼀半(已被git管理),被产品经理突然叫停,说是要停⽌新功 能的开发。虽然⽩⼲了,但是这个 feature 分⽀还是必须就地销毁,留着⽆⽤了。这时使⽤传统 的 git branch -d 命令删除分⽀的⽅法是不⾏的。

//使用
git branch -D branchname