Git - 切换分支



在 Git 中切换分支是一项基本操作,它允许开发人员同时处理项目的不同方面,而不会干扰主代码库。

为什么要切换分支?

切换分支对于维护干净和组织良好的代码库至关重要。以下是一些切换分支变得必要的场景

  • 功能开发: 当您正在开发新功能时,最好在单独的分支上进行。这使您可以根据需要进行尽可能多的更改,而不会影响主分支中的稳定代码。

  • 错误修复: 如果在您开发功能时发现了错误,您可以切换到一个专门用于修复错误的新分支。修复完成后,您可以将其合并回主代码库。

  • 代码审查: 在将分支合并到分支之前,通常的做法是审查代码。通过将更改保留在单独的分支上,您可以确保只有经过审查和批准的代码才能合并。

  • 实验: 如果您不确定特定方法或需要测试某些内容,您可以创建一个实验分支。如果实验失败,您可以简单地删除该分支,而不会影响主代码库。

如何在 Git 中切换分支

在 Git 中使用git checkout命令切换到现有分支。此命令会更新工作目录中的文件,以匹配您要切换到的分支的状态。

让我们切换到名为feature-x的分支

$ git checkout feature-x

通过运行此命令,feature-x分支由HEAD引用。

feature-x分支指针将在每次在此之后进行修改和提交时,在提交历史中向前移动。

git branch6

假设我们对文件进行了一些更改并在feature-x分支上提交了更改

$ vim test.htm  # Make some changes
$ git commit -a -m 'Update feature'
git branch7

通过最近的提交,feature-x分支现在正在向前移动。

使用git checkout返回到master分支

$ git checkout master

此活动实现了两个目标

  • HEAD指针被移动到指向master分支。

  • 它基本上撤消了对feature-x分支所做的所有更改,方法是将工作目录中的文件恢复到指向master分支的快照。

通过在分支之间导航,我们可以独立地处理各种功能或任务,并保持不同的开发线,直到我们准备好将更改合并回主分支。

git branch8

让我们演示如何在 Git 中进行更改并拥有不同的历史记录

让我们首先对文件进行一些编辑,并将它们提交到当前分支(假设是feature-x分支)

$ vim test.htm  # Make some changes
$ git commit -a -m 'Make other changes'

我们已经编辑了文件test.htm并使用以下命令提交了更改,并更新了消息。

git branch9

我们的项目历史现在正在分叉。例如,我们对一个分支(feature-x)进行了更改,切换到它,然后通过切换回我们的主分支(master)进行了更多更改。

由于每组修改都包含在其自己的分支中,因此我们可以在它们之间交替,并在准备好时将它们合并在一起。

我们可以使用git log命令以及各种参数来查看分叉历史记录和分支指针

$ git log --oneline --decorate --graph --all

此命令以简洁、优雅设计的图形格式显示了我们帐户的提交历史记录。

这也指示了所有分支指针(包括HEAD)的位置以及分支分叉的趋势。

  • 由于 Git 分支只是指向特定提交,因此它们轻量级且易于创建和删除。

  • 与旧的版本控制系统(由于元数据更新较少而需要复制整个目录)不同,Git 的分支过程几乎是即时的。

  • 这种效率鼓励开发人员频繁使用分支来有效地组织和管理他们的工作。

广告