Git - 切换分支
在 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 的分支过程几乎是瞬时的。
这种效率鼓励开发者频繁使用分支来有效组织和管理他们的工作。