发布于 2026-01-06 2 阅读
0

面向不了解 GitHub 的人的 GitHub 指南

面向不了解 GitHub 的人的 GitHub 指南

几年前,我第一次接触GitHub的经历着实尴尬。我当时完全不懂技术,之前从未听说过Git,也从未用过命令行,只是想搭建一个网站。虽然GitHub绝对不是最佳选择,但我还是磕磕绊绊地用上了它,结果最终居然成功了。

然而,这个“最终”却意味着我花了大量的时间(至少十几个小时——就像我说的,这很尴尬)试图弄明白GitHub到底是怎么回事,这比我实际编写和测试网站代码所花的时间要长得多。它把GitHub变成了一个神秘的、神话般的存在,即使我逐渐适应了它,但我仍然对它心存畏惧。

替代文字

如果你还不了解 GitHub,对 GitHub 感到畏惧,或者完全不明白人们为什么、何时、如何使用 GitHub,那么这篇指南就是为你准备的。我并非专家,但我曾经也和你一样,我相信我们可以一起驯服这个“野兽”(至少能有所突破)。


Git 和 GitHub 并不相同。

我早期遇到的一个困惑是,我会看到 Git 和 GitHub 这两个词,但我根本没意识到它们是不同的东西

简而言之:Git 是你的本地版本控制系统,你可以使用它来创建和跟踪代码版本,以便参考或回滚到之前的版本。GitHub 则提供了一种托管 Git 仓库(Git 仓库是版本及其关联文件的集合)的方式,让你可以共享和协作开发代码。你可以使用 Git 在自己的电脑上完成所有本地版本控制,无需连接互联网。但是,GitHub 也允许你根据需要将这些代码版本迁移到云端,并且开发了一些技巧,方便你与他人协作开发同一个项目。

当你刚开始创建仓库(存放所有你想保存在一起并且将来可能共享的文件的文件夹)时,你可以使用本地的 Git 或在线的 GitHub 帐户来创建仓库——选择适合你的方式即可!

我将提供两种操作指南:如果您在本地创建仓库,需要告知 GitHub该仓库的存在,并授予其创建副本的权限,以便将其保存在云端。如果您在 GitHub 上创建仓库,则需要“克隆”该仓库,将其复制到本地计算机上进行编辑。

如何选择上述哪个指南呢?如果您已经编写了代码,我建议选择第一个选项。如果您是新手,我认为在 GitHub 上创建代码仓库,然后将其“克隆”到本地运行会更容易一些。


Git 的操作步骤比你想象的要多。

替代文字

首先,我们来看看 Git 中对 GitHub 新手来说最有用的部分。为什么我需要“添加”、“提交”和“推送”我的代码呢?在处理小型项目时,所有这些基本步骤看起来都有些多余,而且这些术语也不一定直观,所以让我们逐一解释。

我认为使用 Git 就像排演话剧一样,所以请耐心听我解释,我会努力让这个比喻成立。

在 Git 中使用“add”命令时,你实际上是在后台为即将登台的演员做准备,但演员仍然在幕后。你可以一次性完成所有准备工作,但也许你并不想让所有内容同时上台——有些演员还没穿好戏服,或者还没准备好!“add”命令的目的是告诉 Git 哪些文件将在当前场景中实际上台,而其他文件则尚未准备就绪,将在后续场景中更合适的时候加入。

在 Git 中“提交”某些内容时,实际上就是将准备好的“演员”(文件)移到舞台上。这应该伴随着某种介绍,就像演员登场时说的一句话,让观众明白演员为何出现在这里——而好的“提交”消息正是传达这一点的!

提交代码并不意味着真的把舞台搬到了观众面前。当你在 Git 中“推送”代码时,你实际上是将你编写的场景(包括所有合适的演员)添加到实际的剧本中。如果你“推送”到你的 GitHub 仓库,这不仅意味着将场景添加到剧本中,还意味着将包含新场景的剧本呈现在观众面前!现在,其他人可以通过访问你的 GitHub 仓库来观看你的剧本上演。

如果你不知道演员们是在幕后准备就绪,还是在演出进行中登台亮相,又或者不知道这场戏是否已经添加到剧本中(也就是说,如果你不知道该用“添加”、“提交”还是“推送”命令),你可以查看 Git 的“状态”。在最基本的终端命令行中,它会准确地告诉你哪些内容已添加到你的代码仓库,哪些内容已提交到你的代码仓库,以及你的本地工作与你最初使用的原始代码相比处于什么状态(甚至可能还会显示颜色!)。查看这篇关于 Git 基础的教程,了解更多细节,并深入了解如何运行这些 Git 命令。


GitHub 的目的是协作

如果你不是在团队中工作,只想把代码藏起来永远不与任何人分享,那么你可能不需要 GitHub。但更有可能的是,你会与其他人合作,或者想要与他人分享你的工作成果,所以熟悉一下 GitHub 的使用方法很有价值。

正是因为重视协作,你才能创建代码分支。简单来说,就是你的代码从此朝着新的方向发展。如果主代码和分支最终再次朝着同一个方向发展,你之后还可以将这些分支“合并”。我知道这个比喻有点新颖,但树状图显然是 Git 和 GitHub 的设计初衷,也是大多数人最容易理解的方式。

那么,什么是拉取(Pull)呢?它和拉取请求(Pull Request)有什么区别?拉取(Pull)是 Git 的一个命令,用于将不同分支上的更改合并到本地。拉取(Pull)命令结合了获取(fetch)和合并(merge)两个命令——首先从远程代码库获取更改(fetch),然后将其与当前代码合并(merge)。

另一方面,“拉取请求”是 GitHub 上的一个操作,它允许你请求将一个分支(或其他相关的代码片段)添加到树的主干中——按照我们新的树状比喻,你就是将拉取的代码嫁接到主干上。

所有这些协作机制——分支、合并、拉取和拉取请求——都是为了确保团队中的每个成员都能独立工作,同时又能合并彼此的工作而不会互相干扰。这就是为什么合并冲突是不可避免的。我不会在这里深入探讨合并冲突,因为其他人在处理合并冲突方面比我更有经验,但你要知道,冲突确实会发生,没关系,你会克服的。记住,GitHub 的宗旨是提供帮助,即使有时它确实很烦人。


驯兽师

替代文字

这只是最基础的介绍,因为 Git 和 GitHub 都是非常重要的工具,需要时间才能精通。不过,有了 GitHub,我感觉更安心了,即使它偶尔还是会给我带来一些小麻烦,我仍然不能完全信任它,担心它不会突然发作。希望你也有同感!上面有很多链接,可以看看,它们都深入讲解了更多细节,是非常好的资源。

这是否有助于你理解如何以及为什么使用这些工具?你对 GitHub(或 Git)有什么有趣的思考方式吗?还有其他比喻吗?请告诉我!

封面图片来自FreeCodeCamp 的 Diana Neculai,三个 GIF 图片来自GIPHY
文章来源:https://dev.to/lberlin/a-github-guide-for-people-who-don-t-understand-github-n50