Logo
Section 1 / 7

创建一个分支

学习 Git 中创建分支的不同方法。

导入

创建一个分支

学习 Git 中创建分支的不同方法。

到目前为止,我们已经学习了基本命令,可以持续将更改保存为快照。现在是时候学习一些更高级的技术了。

在本章中,我们将学习以下内容:

  • 创建分支
  • 切换到特定的提交
  • 合并分支
  • 查看提交之间的差异
  • 保持清晰的提交历史
  • 使用 git add 交互式地选择我们想要提交的更改

创建分支

我们可以使用 git switch -c 命令来创建一个分支。例如,下面的命令会创建一个名为 new_feature 的分支:

1$ git switch -c new_feature

这会创建一个新的分支。但实际上,直到我们创建新的提交之前,一切都没有变化。当我们运行 git log 查看提交记录时,仍然看到相同的提交图。唯一的区别是,现在 HEAD 所在的位置显示了 new_feature 分支名称。

...
创建新分支 new_feature

在新分支中进行修改

我们来看看当在新分支中进行修改并提交后,分支是如何工作的。之后,git log 显示的提交图中包含了 new_feature 和 master,它们分别指向不同的提交。这是因为我们在 master 所指向的位置创建了分支,然后在此基础上继续添加了新的提交。

请在下方终端中依次运行以下命令:

  1. 创建一些文件。
    1$ touch file2.txt
  2. 执行 git add . 命令。
    1$ git add .
  3. 执行以下 git commit 命令:
    1$ git commit -m "First commit in new_feature branch."
  4. 执行 git log 命令。
    1$ git log
  5. 切换回 master 分支。
    1$ git switch master
  6. 在 master 分支中进行修改。
    1$ touch file3.txt 2$ git add . 3$ git commit -m "Make changes in master."
  7. 再次执行 git log 命令。
    1$ git log --oneline --graph --decorate --all
Terminal

在 master 分支中进行修改

为了让情况更有趣,我们使用 git switch master 回到 master 分支。此时,HEAD 指向 master。

接下来,我们在 master 分支上进行其他修改并提交。当我们使用 git log 查看提交图时,会发现两个提交从同一个父提交分叉出来,其中一个为 master,另一个为 new_feature。HEAD 指向当前所在的提交。当我们再次使用 git switch new_feature 时,可以看到 HEAD 现在指向 new_feature。

注意: 如果你使用的是较旧版本的 Git 客户端,可能没有 git switch 命令。此时可以使用 git checkout branch_name 来切换分支,使用 git checkout -b new_branch_name 来创建新分支。

幕后揭秘

查看特定提交