Git 中的分支是什么?
注:这是 Git 入门系列视频的第七集。点击此处观看第一集。
想象一下存在平行世界。我们有:
- 一个由我制作,而你正在观看的世界。
- 一个我制作了这段视频,但你却没有观看的世界。
- 一个我没有制作这段视频的世界。
在这个平行世界的概念中,Git 分支就是一个平行世界。
你可以创建一个分支,让它在一个世界中保持不变。然后,你再创建一个分支进入另一个世界。代码完成后,你可以将更改合并到初始世界中,从而完成整个世界。
如何创建分支
打开你的 Git 客户端。找到你想从中创建分支的分支。右键单击该分支,然后选择“创建新分支”。
您可以随意命名您的分行。
通常情况下,我们开发人员创建的第一个分支是开发分支。
给分支命名后,点击创建并检出。这里的“检出”指的是切换到开发分支。
创建开发分支后,您可以在分支部分看到两个分支——master 和 development。
在 Git 历史记录中,您还可以看到一个名为 的新标签development。该标签与和development位于同一提交中。masterorigin/master
为什么要创建开发分支?
假设你有一个已经可以公开访问的网站。这个网站位于主分支上。
如果你将代码提交到主分支,就意味着你直接修改了网站。如果你引入了任何错误,其他人可以立即看到。
我们是人,都会犯错。我们不想让别人看到我们的错误。
所以我们创建一个新分支,并在此基础上进行开发。完成后,当我们确信没有更多错误(至少我们会尽力确保没有!),我们就将更改推送回主分支以更新网站。
这就是我们使用开发分支的原因。
在这种情况下,主分支也可以称为生产分支。
如何在新的分支上编写代码
创建新分支后,您可以直接在该分支上编写代码。您对代码所做的任何更改都只会反映在该分支上。
假设我们要创建一个名为 . 的新文件development.md。在这个文件中,我们写上“你好!这是从开发分支提交的!”。
# development.md
Hello! This is committed from the development branch!
返回 Git 客户端后,您可以将此更改提交到开发分支。
创建提交时,请确保您位于开发分支上。在 Fork 中,您可以通过查看加粗的分支名称来判断您当前所在的分支。
将你的代码提交到开发分支。
现在,如果你查看 Git 历史记录,你会发现开发分支比origin/master分支和本地master分支都领先一个提交。
这说明我们可以在该分支上编写任意数量的代码,而development不会影响其他分支。
将开发分支推送到 Git 远程仓库
您可以通过点击推送按钮将开发分支推送到 Git 远程仓库。步骤与您首次推送 master 分支时的步骤类似。
推送完成后,您可以origin/development在与标签相同的提交中看到该标签development。
在不同分支之间切换
要在分支之间切换,您可以双击想要切换到的分支(在侧边栏中)。例如,如果您双击 Master 分支,则会检出 master 分支。
结账是指切换到您选择的分行。
现在查看你的项目,你会发现development.md文件丢失了。这再次证明,你可以在自己的分支上进行任意多次提交,development而不会影响其他分支。
合并分支
如果你已经完成了开发过程,并且准备将分支合并回主分支master。
要进行合并,首先需要检出要合并到的分支。这应该是master……
然后,要将development分支合并到主分支,请在 Git 客户端中master右键单击该分支,然后选择“合并到 'master'”。development
Fork 会询问您是否要创建合并提交。有些客户端会自动为您执行此操作。
选择合并,合并操作即可完成。
如果你现在查看 Git 历史记录,你会发现该master分支领先于development其他origin/development分支。
这是因为我们已经执行了合并提交。
同时,master它比分支领先两个提交origin/master。这就是为什么我们在侧边栏看到“2”的原因。
合并完成后,您可以点击“推送”按钮更新 Git 远程仓库。
删除分支
要删除分支,请右键单击要删除的分支,然后选择删除“分支名称”。
在 Fork 中,您还可以选择从远程仓库中删除分支。
点击“删除”和“Fork”将删除两个分支。
删除完成后,您可以查看 Git 历史记录。您会注意到 `<script>`origin/development和 ` <script> development` 标签都已从历史记录中消失。
总结
分支就像一个平行世界,你可以在其中创建提交而不会将错误引入生产代码。你总可以在将分支合并到生产代码之前修复这些错误。
感谢阅读。本文最初发布在我的博客上。如果您想阅读更多帮助您成为更优秀的前端开发人员的文章,请订阅我的邮件列表。
文章来源:https://dev.to/zellwk/what-is-a-branch-in-git-3ink











