git 查看所有分支(git两个分支合并)

什么是分支

分支是指在主干道上分支的支线,可以前往不同的地方,也可以到达相同的终点(只是实现的路线不同)。 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分支名称直接创建和切换指定的分支。 这等同于运行了两个命令:切换新分支和分支。

p>

​分支合并

当分支完成了阶段性的开发完并调试好后我们就可以进行合并了,使用指令: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实战004:branch分支操作详解】,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注