创建一个分支
学习 Git 中创建分支的不同方法。
到目前为止,我们已经学习了基本命令,可以持续将更改保存为快照。现在是时候学习一些更高级的技术了。
在本章中,我们将学习以下内容:
- 创建分支
- 切换到特定的提交
- 合并分支
- 查看提交之间的差异
- 保持清晰的提交历史
- 使用
git add交互式地选择我们想要提交的更改
创建分支
我们可以使用 git switch -c 命令来创建一个分支。例如,下面的命令会创建一个名为 new_feature 的分支:
1$ git switch -c new_feature
这会创建一个新的分支。但实际上,直到我们创建新的提交之前,一切都没有变化。当我们运行 git log 查看提交记录时,仍然看到相同的提交图。唯一的区别是,现在 HEAD 所在的位置显示了 new_feature 分支名称。
在新分支中进行修改
我们来看看当在新分支中进行修改并提交后,分支是如何工作的。之后,git log 显示的提交图中包含了 new_feature 和 master,它们分别指向不同的提交。这是因为我们在 master 所指向的位置创建了分支,然后在此基础上继续添加了新的提交。
请在下方终端中依次运行以下命令:
- 创建一些文件。
1$ touch file2.txt - 执行
git add .命令。1$ git add . - 执行以下
git commit命令:1$ git commit -m "First commit in new_feature branch." - 执行
git log命令。1$ git log - 切换回
master分支。1$ git switch master - 在
master分支中进行修改。1$ touch file3.txt 2$ git add . 3$ git commit -m "Make changes in master." - 再次执行
git log命令。1$ git log --oneline --graph --decorate --all
在 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来创建新分支。