前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git实战:branch分支操作详解

Git实战:branch分支操作详解

作者头像
码农编程进阶笔记
发布2022-12-21 19:33:56
3900
发布2022-12-21 19:33:56
举报

什么是分支

分支是指在主干道上分支的支线,可以前往不同的地方,也可以到达相同的终点(只是实现的路线不同)。Git指向团队开发中的个体,各开发者可以有自己的分支,开发时不会影响其他分支的开发进度。分支完成阶段性工作后,可以整合到上级分支。(功能开发完成,调试OK )这个上级分支一般是指Git默认创建的Master分支,这个分支不参与开发,只用于项目的管理、维护、集成、发布。

Git分支

Git分支不是复制所有数据,而是指向提交对象的指针。在执行“转移”(Git add )操作时,git会计算每个文件的有效性值,并将当前版本的文件快照保存在转移区域中并等待提交。此外,在执行git commit操作时,计算出的有效性值和快照将保存为树对象。每个commit对象都包含指定tree对象的哈希值,每个tree对象都包含指定blob对象的哈希值,因此Git不是文件的变化或差异,而是一系列不同时间点的文件由于Git分支的创建和切换实际上只是创建指针和查找指针,因此分支的创建和分支的切换几乎都是即时的。找到指针指向的commit对象,然后将工作区恢复为该commit对象所指向的文件快照。 

Git提交

Git在每次提交时合并为一个时间线,每次提交时前进并形成分支。每次提交时,都会生成记录当前位置的id (散列值),头指向最后提交的位置)或当前分支。

创建分支

分支的创建本质上只是创建指向commit对象的指针,Git在初始化时自动创建第一个master分支和指向master的指针head。命令:可以使用 git branch 分支名称 创建指向当前提交对象的分支主节点的分支。也就是说,将在主节点上创建分支。VSCode创建分支也很容易,在左下角单击分支,下拉框就会出现。可以在此处创建新分支,也可以选择现有分支进行切换。

查看分支

使用指令:git branch可以看到所有的本地分支。其中标有*的表示当前的工作分支,如果想查看分支的详细信息,则命令:git branch -v可以查看分支所指的ID和提交信息

切换分支

要使用分支,必须首先切换到该分支。可以使用命令 git checkout 分支名称 来实现可切换的分支。本质上是修改头部指针的指针,切换到分支,使工作区的内容指向分支最后提交的快照的内容。此时,master分支在提交时不移动,而是随着提交操作移动。命令:可以使用git checkout -b分支名称直接创建和切换指定的分支。这等同于运行了两个命令:切换新分支和分支。

分支合并

当分支完成了阶段性的开发完并调试好后我们就可以进行合并了,使用指令:git merge <分支名> 可以将指定分支合并到当前分支。注意这里是提交到当前分支,所以合并之前一定要确认下当前位于哪个分支上。如果要合并到master分支就需要先切换到master分支上,再执行git merge <分支名> 合并操作。当合并(merge)发生时会产生新的提交(commit),当前分支会自动向前移动并生成新的分支合并记录了。合并不会影响被合并的分支,可以重新切换到该分支继续提交修改。

删除分支

当分支任务完成并与其他分支合并之后,如果该分支不再参与后续工作或者不需要该分支时就可以进行删除。利用指令:git branch -d <分支名> 可以删除指定分支,当然删除分支前需要先切换到其他分支才能进行删除操作。如果要强制删除分支的话可以使用指令:git branch -D <分支名> ,不管该分支有没有合并到当前分支的提交记录都进行删除。

恢复分支

对于已经有提交记录的分支删除后,实际上只是删除指针其commit记录还被保留,恢复之前我们可以通过指令:git reflog查找该分支最后一次提交时的ID(最前面的hash值),我们可以根据ID创建新的分支来恢复之前的分支数据。恢复指令为:git branch <分支名> <hash值> ,当然你也可以从远程仓库重新clone一份。

总结:

分支可以从主线上分离开来,在不影响主线的同时继续工作。在分支上开发并调试好了后再合并到主分支,那么每个人就可以负责不同的模块开发而不会影响到别人。所以利用分支不仅可以高效的管理项目资源,也可以更好的协调人力进行并行开发,提高开发效率降低开发周期。以上内容是小编给大家分享的【Git实战:branch分支操作详解】,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农编程进阶笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是分支
  • Git分支
  • Git提交
  • 创建分支
  • 查看分支
  • 删除分支
  • 恢复分支
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档