【Git】分支是什么?

首先开始

在利用Git进行开发时,分支功能是必不可少的。通过利用分支功能,可以在独立的环境中同时进行一个项目的开发。此外,通过深入理解分支,使得Git命令更易于理解和掌握。虽然我自己还远未能完全驾驭它,但我想在这次讲解中介绍我所了解的关于分支的内容。

Git (在中国)

在进入分支的说明之前,我想首先从Git的解释开始。

版本管理

版本切换

你可以使用git checkout命令根据提交ID切换版本(可以通过git log查看以前版本的提交ID)。刚才我已经解释了通过指定提交ID来切换版本,更准确的说,是通过切换HEAD(※2)所指向的提交来切换版本。所以实际上,git checkout命令是切换HEAD所指向的提交,结果就是版本被切换了。

※2 HEAD:指的是当前正在进行操作的版本的提交指针。反过来,可以说是在移动到HEAD所引用的提交的版本。

分支功能

分支功能是指将提交历史记录进行分支并记录的功能。当提交历史记录分支时,即使在其他分支中有新的提交,也不会受到影响。让我们考虑下面的情况。红框内的提交对蓝框和绿框分支的提交历史没有影响。没有对提交历史的影响意味着对版本也没有影响。因此,通过将提交历史分支为每个任务进行工作,可以在独立的环境中推进每个任务。

分岐

分叉是什么?

我已经解释了关于分支功能,但是什么是“分支”这个词呢?英语单词”branch”可以表示”枝、分叉”等意思。分支也可以指代分岔的每个提交历史记录,但是作为分支的实体,并不仅仅指向整个提交历史记录,而只是指向最新提交的指针而已。所以,当提交被更新时,分支的指针也会切换到最新的提交(※3)。

※3 当创建一个新的Git仓库时,同时会生成一个最初的分支,该分支默认命名为master或main(对于2020年10月后新创建的仓库则为main,之前为master)。

分支和HEAD

实际上,通常会使用git checkout命令加上分支名称进行移动,这种情况下,HEAD指针会指向该分支。此时,HEAD间接引用了该分支所指向的提交。因此,如果在该分支上有新的提交,分支的引用将会切换,并且同时也会将HEAD的引用切换到相同的位置。

创建分支

通过使用git branch命令加上分支名称或者使用git checkout -b命令,你可以创建一个新的分支。git checkout -b命令是一个很方便的命令,可以同时执行git branch分支名称和git checkout分支名称,这样可以方便地生成一个新的分支,并在该分支上进行工作。

git_branch_flow.gif

最后

这次我解释了关于Git的分支功能。
希望能够理解Git并且更舒适地进行开发。

网站参考目录

    • GitのHEADとは何者なのか

 

    Git – ブランチとは
广告
将在 10 秒后关闭
bannerAds