Git 怎么切换分支?

文章导读
Previous Quiz Next 在 Git 中切换分支是一项基本操作,它允许开发者同时处理项目不同方面的工作,而不会干扰主代码库。
📋 目录
  1. 为什么需要切换分支?
  2. 在 Git 中切换分支
A A

Git - 切换分支



Previous
Quiz
Next

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

为什么需要切换分支?

切换分支对于维护干净且有组织的代码库至关重要。以下是几个需要切换分支的场景:

  • 功能开发: 当你正在开发新功能时,最好在单独的分支上进行。这允许你进行所需的任何更改,而不会影响 main 分支中的稳定代码。

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

  • 代码审查: 在将分支合并到 main 分支之前,通常需要审查代码。通过将更改保存在单独的分支上,你可以确保只有经过审查和批准的代码才会被合并。

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

在 Git 中切换分支

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

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

$ git checkout feature-x

运行此命令后,feature-x 分支将被 HEAD 引用。

此后,每次对 feature-x 分支进行修改并提交,分支指针就会在提交历史中向前移动。

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

$ vim test.htm  # 进行一些更改
$ git commit -a -m 'Update feature'

随着最近的提交,feature-x 分支现在向前移动了。

使用 git checkout 返回到 master 分支:

$ git checkout master

此操作实现了两个目标:

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

  • 它基本上通过将工作目录中的文件恢复到指向 master 分支的快照,从而撤销在 feature-x 分支上所做的所有更改。

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

让我们演示如何在 Git 中进行更改并创建分歧历史:

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

$ vim test.htm  # 进行一些更改
$ git commit -a -m 'Make other changes'

我们使用这些命令编辑了文件 test.htm 并提交了更改,附带更新消息。

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

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

我们可以使用 git log 命令并带上各种参数来查看分歧历史和分支指针:

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

此命令以简洁、优雅设计的图形格式呈现账户的提交历史。

这还显示了所有分支指针的位置,包括 HEAD,以及分支分歧的趋势。

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

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

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