当前位置:   article > 正文

Git实战:branch分支操作详解

git branch -v

什么是分支

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

e3b55b900e36858b548bd5c1dadb293e.jpeg

Git分支

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

66cf205b434e09bca68c76aa1f79d567.jpeg

Git提交

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

fbd8ac7864077363e6170290e5bcf77f.jpeg

创建分支

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

f80e072003ad1f188a0ab0002a2088e6.jpeg

查看分支

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

ce5b34c97d2353ddeaf33751fc1e403d.jpeg切换分支

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

aa4807a130c0677d06ff15e2a9faeb1b.jpeg

分支合并

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

431f060aa55692a4650b40e0f96451c8.jpeg

删除分支

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

69173409e3323767cc34dfd03e2bca48.jpeg

恢复分支

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

d283b41f664590707ac644a523bbff8a.jpeg

总结:

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

2fe1198e48e834d23a8033b8ae7c4a24.jpeg

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/414283
推荐阅读
相关标签
  

闽ICP备14008679号