2.分支管理

1.了解分支

每次提交,Git都把它们串成⼀条时间线,这条时间线就可以理解为是⼀个分⽀。截⽌到⽬前,只有⼀条时间线,在Git⾥,这个分⽀叫主分⽀,即 master 分⽀;再来理解⼀下HEAD,HEAD 严格来说不是指向提交,⽽是指向master,master才是指向提交的,所以,HEAD 指向的就是当前分⽀

每次提交,master分⽀都会向前移动⼀步,这样,随着你不断提交,master分⽀的线也越来越⻓,⽽HEAD只要⼀直指向master分⽀即可指向当前分⽀。

2.分支操作

2.1创建分支

git branch查看当前所有分支,git branch xxx可以创建分支

创建新的分⽀后,Git 新建了⼀个指针叫 dev, * 表⽰当前 HEAD 指向的分⽀是 master 分⽀

⽬前 dev 和 master 指向同⼀个修改

2.2切换分支

使⽤ git checkout 命令即可完成切换

可以发现已经切换到dev分支

2.3合并分支

为了在 master 主分⽀上能看到新的提交,就需要将 dev 分⽀合并到 master 分⽀

git merge 命令⽤于合并指定分⽀到当前分⽀

2.4删除分支

如果当前正处于某分⽀下,就不能删除当前分⽀

切换到其他分支进行删除

3.合并冲突

有这样一个场景,在dev分支下有句代码是123,而在master分支下该部分代码为456,当想将两个分支合并时,会出现冲突

此时我们必须要⼿动调整冲突代码,并需要再次提交修正后的结果!!

使用git log可以查看到分支合并的情况

4.分支管理策略

(1)Fast Forward模式

通常合并分⽀时,如果可能,Git 会采⽤ Fast forward 模式,在这种 Fast forward 模式下,删除分⽀后,查看分⽀历史时,会丢掉分⽀信息,看不出来最新提交到底是 merge 进来的还是正常提交的。

(2)禁用Fast Forward模式

Git ⽀持我们强制禁⽤ Fast forward 模式,那么就会在 merge 时⽣成⼀个新的 commit ,这样,从分⽀历史上就可以看出分⽀信息。

shell 复制代码
git merge --no-ff -m "merge with no-ff" dev2

--no-ff 参数,表⽰禁⽤ Fast forward 模式,禁⽤ Fast forward 模式后合并会创建⼀个新的 commit ,所以加上 -m 参数,把描述写进去。

(3)bug分支

git stash

Git 提供了 git stash 命令,可以将当前的⼯作区信息进⾏储藏,被储藏的内容可以在将来某个时间恢复出来。

git stash list

可以查看之前隐藏的工作现场

git stash pop

恢复工作现场,同时删除stash

(4)删除临时分支

使⽤传统的 git branch -d 命令删除分⽀的⽅法是不⾏的,需要使用git branch -D xxx

相关推荐
商业模式源码开发6 小时前
实体门店低获客成本增长案例:3 人转介绍模型 + 消费返还机制落地分析
大数据·商业模式·私域流量
chushiyunen7 小时前
gitignore常用配置
gitee
元拓数智8 小时前
智能分析落地卡壳?先补好「数据关系+语义治理」这层技术基建
大数据·分布式·ai·spark·数据关系·语义治理
一只大袋鼠8 小时前
Git 进阶(二):分支管理、暂存栈、远程仓库与多人协作
java·开发语言·git
TDengine (老段)8 小时前
TDengine Tag 设计哲学与 Schema 变更机制
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
sxgzzn9 小时前
新能源场站数智化转型:基于数字孪生与AI的智慧运维管理平台解析
大数据·运维·人工智能
清平乐的技术专栏10 小时前
【Flink学习】(二)Flink 本地环境搭建,运行第一个入门程序
大数据·flink
这是程序猿11 小时前
Spring Boot自动配置详解
java·大数据·前端
ws20190711 小时前
AUTO TECH China 2026广州汽车零部件展:从整机集成迈向核心部件的产业跃升
大数据·人工智能·科技·汽车
humors22111 小时前
从数据到决策:汽车使用成本的精细计算指南
大数据·程序人生