Git 和 GitHub:完整指南 - 第 4 章:分支
欢迎来到本章,我们将讨论 Git 的一个重要特性——分支。在 Git 中,分支是你日常开发过程的一部分。例如,当你想为项目添加新功能,或者可能需要修复 bug 时,你就可以使用分支。
这里我们将介绍如何:
- 创建分支
- 创建并切换到新分支
- 删除分支
- 将分支推送到 Github
- 从远程拉取分支到本地
- 删除分支
如上图所示,我们有一个包含不同提交的项目时间线。这条时间线实际上是一个分支。默认情况下,当您创建存储库并进行提交时,您正在主分支上工作。这是我们在前几章中已经看到的。
继续我们的例子,有时你需要为项目添加新功能,但同时又不想触及或破坏项目的当前状态。在这种情况下,最好的解决方案是创建一个新的分支,然后在该分支上进行操作(添加文件、进行提交等)。
创建并测试新功能后,如果您满意,就可以将分支合并到主分支。您可以创建任意数量的分支。
当多个开发人员在同一个项目上工作时,它变得非常有用,他们每个人都可以在不同的分支上工作,而不会破坏其他开发人员的工作。
创建分支
让我们在实践中看看如何使用分支。回到我们的项目,我们正在默认的 master 分支上工作。要创建新分支,我们必须运行以下命令:
git branch
此命令后跟分支的名称。例如:
git branch feature-1
为了查看我们正在处理的分支以及有多少个分支,我们需要运行以下命令:
git branch
现在我们可以看到我们总共有两个分支,目前我们正在 *master 分支上工作,如星号和绿色文本所示。
让我们看看如何切换到不同的分支,为此我们必须运行命令:
git checkout feature-1
现在我们将在 feature-1 分支上工作。查看提交历史记录,我们将获得迄今为止的所有提交。我们可以修改这些提交,也可以创建新的提交,但这些提交在 master 分支上是无法获取的。
如果您还记得前面的章节,我们可以通过运行以下命令切换回主分支:
git checkout master
请注意,我们在分支上所做的更改或提交将不会被主分支看到,我们可以通过在 feature-1 分支上进行新的提交,然后检查该提交是否在主分支上的提交历史记录中被跟踪来证明这一点。
创建并切换到新分支
让我们继续,看看如何只用一个命令就能创建并切换到新分支。假设我们要创建一个名为 feature-2 的新分支并立即切换到它。为此,我们需要运行以下命令:
git checkout -b
此命令后跟新分支的名称。例如:
git checkout -b feature-2
现在当我们运行时,git branch
我们将看到我们有三个分支,并且我们也已经切换到了我们的新分支。
删除分支
接下来我们要讨论如何删除分支。为此,我们需要运行以下命令:
git branch -D
这个命令后面跟着我们要删除的分支的名称。
请记住,我们无法删除当前正在处理的分支,如果我们尝试删除当前所在的分支,我们将收到一条错误消息,提示我们无法删除它。
一旦我们删除了分支,我们就可以使用命令查看还剩下多少个分支git branch
将分支推送到 Github
我们可以通过运行以下命令将示例功能分支推送到远程存储库:
git push origin feature-2
为此,我们首先必须在我们的分支上进行提交,可以在这里看到。
当我们将本地分支推送到 GitHub 时,我们可以看到我们的分支已被添加,然后我们可以转到该分支并查看所做的提交。GitHub 甚至会告诉我们我们领先主分支多少次提交。
从 GitHub 创建分支
我们也可以从 Github 官网创建分支。很简单。点击master按钮,为分支命名,然后点击“创建分支”。就可以看到新分支创建完成了。
我们甚至可以点击分支按钮来查看所有分支。将鼠标悬停在数字上,我们可以看到我们的分支比主分支领先了多少次提交。
从远程拉取分支到本地
如果我们在 GitHub 上创建了一个分支,并且想要在本地仓库中使用该分支,我们必须将数据从远程仓库拉取到本地。为此,我们运行以下命令:
git pull origin
然后我们在命令后面加上远程分支的名称。例如:
git pull origin feature-1
然后我们需要运行命令:
git checkout --track origin/feature-1
现在,我们已将数据从 GitHub 拉取到本地仓库,并已切换到该仓库。我们可以通过运行以下命令进行检查:git branch
我们可以在 GitHub 上对远程分支进行更改并提交。但要访问更改,我们需要使用以下命令从远程分支提取数据git pull origin feature-1
:
你可能已经注意到,Git 告诉我们我们的拉取请求并非最佳方法。确实如此。我们还没有讨论到某些主题,所以暂时忽略它。
然后我们可以检查提交历史记录,看看我们的提交是否与远程分支保持同步。
每次我们在 GitHub 上的 feature-1 分支上进行新的提交时,请记住我们必须通过运行以下命令将其拉取到本地存储库git pull origin feature-1
删除分支
我们可以通过前往 GitHub 上的分支,点击分支按钮来删除分支。在分支的右侧,我们可以看到一个小型回收站,点击它就可以删除分支。
现在,当我们访问分支时,我们将不再看到自己的分支。我们甚至可以通过运行以下命令从本地仓库中删除远程分支:
git push origin --delete
此命令后面跟着我们要删除的分支。例如:
git push origin --delete feature-2
返回 GitHub 后,我们可以看到该分支已被删除。但这样删除并不意味着它在本地仓库中也会被删除。事实上,如果我们查看本地仓库中有多少个分支,我们会发现所有分支都还在。
我们知道如何删除本地存储库上的分支,我们通过运行命令来执行此操作:git branch -D
后跟我们要删除的分支的名称。
删除分支时,通常会使用
git branch -D <file>
。这没问题,但请注意 -D 标志会强制删除分支。请使用 -d 标志,这样 Git 可以防止删除尚未合并的分支,从而避免永久丢失工作。
我们可以使用以下命令检查我们的本地分支:git branch
它将只显示主分支。
本章关于分支的内容就到此结束,不过我们将在下一章中进一步讨论分支。希望你喜欢。再见!
文章来源:https://dev.to/ifierygod/git-and-github-the-complete-guides-chapter-4-a00