二.Git分支管理

1.理解分支:

2.创建,切换,合并分支

<1>创建分支: 命令:git branch 分支名 (1,2步可一条命令完成:git checkou -b 分支名)

<2>切换分支: 命令: git checkout 分支名 (默认master分支)

<3>合并分支:①将master主分支拉到分支A--先切换到分支A-->命令: git merge master

②将分支A合并到master分支--先切换到master主分支-->命令:git merge 分支A

HEAD指针指向哪个分支,则操作就在该分支

图示理解:

3.删除分支

命令: git branch -d 分支名

注:所在分支不能自删,只能删其他分支,分支合并后,强烈要求删除所创建的分支

4.合并模式

**①Fast forward模式(ff)**下形成的合并如下:

由于合并删除分支后,后续翻看历史提交记录看不出来最新提交的是主分支merge进来的,还是主分支正常提交的.

②no fast-forward模式(no ff) ---推荐

此模式在后续翻看历史提交记录可以看出来某次提交的

命令: git merge --no--ff -m "说明" 分支名

5.合并冲突:

图示直观可视命令 : git log --graph --abbrev-commit

发生merge冲突时,需手动修改选择要保留的内容,并再一次提交操作

图示:

6.分支策略

日常代码开发 线上环境(APP,网站)

dev -----测试后合并到master上----> master主分支

不稳定,存在bug,可修改 稳定

7.bug分支

场景:正在分支开发时,master上的项目出现bug

①首先可将当前工作区代码暂存到stash中

命令: git stash

②接着,创建一个新的分支去修复master上的项目上的bug,修复后合并到master分支上

命令: git checkout -b fix_bug

命令: git merge fix_bug

③: 返回原开发分支,从stash中取出已开发的代码继续开发

命令: git stash pop

④合并:由于先前开发时拉取的master主分支的项目是未解决bug的版本,而解决bug后的master上是已修复好并能正常提交的,所以此种情况的合并步骤:

<1>先让dev分支合并master分支:

合并后就算有问题也可在本地分支多次修改测试,不会影响master代码

<2>再让master合并这个dev分支

由于冲突在<1>中的dev中就解决了,所以此处合并则无需再解决冲突

8.强制删除分支

场景:开发的分支未merge到master分支时

产品经理:新增个功能 你:

产品经理:算了,不要这个功能了, 你:

在分支未merge到master之前,都可以悔棋

<1>命令: git branch -d 分支名 ---分支已merge了才给删

<2>命令: git branch -D 分支名 ---分支未merge时用这条命令才能删(因为git 会保护未merge的分 支,需强制删)

相关推荐
louisgeek10 小时前
Git submodule 子模块
git
imDwAaY10 小时前
6篇文章讲清楚Git:Git 实用技巧:暂存现场、挑选提交与定位 Bug (5/6)
git·后端
imDwAaY10 小时前
6篇文章讲清楚Git:Git 团队开发实践:从 Pull Request 到版本发布 (6/6)
git·后端
誰能久伴不乏1 天前
看懂 Git 团队协作全流程:分支、提交、PR、rebase 到底在干嘛
git
sunshine22 girl1 天前
git tag-项目流程
git
imDwAaY2 天前
6篇文章讲清楚Git:Git 远程协作:fetch、pull、push 到底有什么区别?(3/6)
git·后端
imDwAaY2 天前
6篇文章讲清楚Git:Git 撤销与恢复:reset、revert、restore 应该怎么选?(4/6)
git
用户73309646123092 天前
再也不怕手滑丢代码!给 git 高危操作加一层安全校验
git
广白2 天前
Git Tag 实战:从出包追溯到版本发布
前端·git·面试
Winlifes7 天前
我给 Codex 做了一个 Git 面板:分支树、提交历史和工作区操作
git