Introduction to git and GitHub Introduction What is git?🤔 How does git work?🤔 Git Workflow🧐 What is GitHub?🤔 What is the difference between Git and GitHub?🤔 GIT Commands Cheat Sheet

2025-06-07

git 和 GitHub 简介

介绍

git 是什么?🤔

Git 是如何工作的?🤔

Git 工作流

GitHub 是什么?🤔

Git 和 GitHub 有什么区别?🤔

GIT 命令速查表

在开始之前,我想声明一下,本教程适合想要学习 git 和 GitHub 的初学者。

本教程没有特定的先决条件

阅读本教程后,您将能够回答以下问题:

  • 什么是 git?
  • git 如何工作?
  • 什么是 GitHub?
  • 我们为什么要使用它们?
  • git 和 GitHub 有什么区别?

让我们最后一次


介绍

通俗的说,git是用来保存你的项目的不同版本的。

现在问题出现了,

为什么备份项目的不同版本很重要?🤔

为了理解这一点,让我们转到一个没有版本控制系统的替代宇宙。

在那个世界里,你正在为梦想中的公司工作。你的团队被要求完成一个重要的项目,而你的工作是构建后端。


你写代码。💻

这是你第一次运行它。🏃

它运行完美。(第一次尝试..哦哦哦哦)😳

它正在按照你的预期工作。💘

这是你一生中写过的最好的代码。😍

你把它传给你的团队成员,然后......
不知何故......
他们把它搞砸了。😱

很好!😑

它回到你身边,你必须修复它,因为你没有任何备份。

现在你修好了。但它不像以前那么完美了。😞

然后你的队友们各司其职。你的团队领导把它展示给项目经理。项目经理再把它展示给客户。

他们喜欢它。😎
但这是他们的反应。



功能加倍

所以现在他们要求你把功能加倍。他们为此付钱给你。这是你的工作。你必须做。

所以,你又开始研究逻辑了。😑💻
你添加了所需的功能。💻
它被传递给你的团队成员,他们各司其职。
你的团队负责人把它展示给项目经理。
你的项目经理把它展示给客户。

这是他们的答复。

“我觉得我们喜欢上一个版本”

现在你不能这样:



听我说,你这个小混蛋

(你必须要有礼貌,按照他说的做,因为他不是一个小混蛋。他是一个大混蛋,他会对你和你的事业做很多糟糕的事情。)

我想您明白了为什么我们应该备份项目的不同版本。

现在,该讨论技术术语了

git 是什么?🤔

Git 是一个分布式版本控制系统,由Linus Torvalds于 2005 年为 Linux 内核的开发而创建。
(请注意“分布式”和“版本控制系统”这两个术语)

什么是版本控制系统?

版本控制系统是一类软件工具,可帮助软件团队管理源代码随时间的变化。

版本控制软件在一种特殊的数据库中跟踪代码的每次修改。

(用外行人的话来说:这就像是软件开发中的保存游戏机制)

在分布式版本控制系统出现之前,集中式版本控制系统很流行。

让我们看一下集中版本控制系统。

  • 在集中式版本控制系统中,我们有一个服务器和一个客户端。
  • 服务器是包含所有版本源代码的主要存储库。
  • 客户端将代码提取到本地机器,对其进行处理,然后将其提交给服务器。

(如果您不理解提交和存储库等词语,请稍等。我们稍后再讨论)

外行人的语言

在集中式版本控制系统中,我们有一个包含所有版本文件的单一服务器,客户端从中心位置检出文件。

所以基本上,要开展任何项目,首先用户或客户端需要从服务器或主存储库获取代码。

一旦您获得最新版本的代码,您就可以开始对代码进行自己的更改,之后您只需将这些更改直接提交到主存储库中。

(这里提交更改意味着将您的代码合并到主存储库或制作源代码的新版本。)

它的主要缺点是存在单点故障

Linus Torvalds 不喜欢集中式版本控制系统,所以他创建了 Git
Linus Torvalds 模因

什么是分布式版本控制系统?

分布式意味着您没有一个可以跟踪数据的中心位置。

没有哪个地方比其他任何地方更重要。

在分布式版本控制系统中,客户端不只是检出最新的快照;而是完整镜像存储库,包括其完整的历史记录


Git 是如何工作的?🤔

让我们首先了解一些重要的术语:

  • 快照

    • 这是 git 跟踪你的代码历史的方式
    • 快照本质上是对文件在特定时间点的记录
    • 您可以决定在快照中包含哪些内容以及排除哪些内容
    • 您可以返回任何快照
  • 犯罪

    • 创建快照的行为。
    • 您的项目本质上是一堆提交。
  • 存储库

    • 通常称为“Repo”
    • 所有文件及其历史记录的集合

git 的工作原理

使用 Git,每次提交或保存项目状态时,Git 基本上都会拍摄当时所有文件的照片并存储对该快照的引用。

如果文件没有改变,Git 不会再次存储该文件,而只是存储它已经存储的上一个相同文件的链接。

Git 用于此校验和的机制称为 SHA-1 哈希。

SHA-1 哈希是一个由十六进制字符(0-9 和 af)组成的 40 个字符串,根据 Git 中文件或目录结构的内容计算得出。

SHA-1 哈希看起来像这样:
24b9da6552252987aa493b52f8696cd6d3b00373


Git 工作流

基本的 Git 工作流程如下:

  1. 您修改工作树中的文件。

  2. 您有选择地只暂存那些您希望作为下一次提交一部分的更改,这将仅将这些更改添加到暂存区域。

  3. 您进行提交,将文件保留在暂存区并将该快照永久存储到您的 Git 目录中。

Git 有三种主要文件状态:已修改、已暂存和已提交:

  • 已修改意味着您已更改文件但尚未将其提交到数据库。

  • 暂存意味着您已将当前版本中已修改的文件标记为进入下一个提交快照。

  • 已提交意味着数据已安全地存储在您的本地数据库中。

随时间变化的签到图像

为了更好地理解这一点,试着想象一下在商店购物🏪

你挑选商品,
把它们添加到购物车,
然后去柜台结账。

账单是你的提交。
购物车是你的暂存区。
商店里有各种各样的商品,但添加到账单中的只有你放入购物车的商品。

GitHub 是什么?🤔

  • GitHub 是一家总部位于美国的全球性公司,使用 Git 提供软件开发和版本控制的托管服务。

  • 它提供 Git 的分布式版本控制和源代码管理 (SCM) 功能,以及其自身的功能。

  • 它为每个项目提供访问控制和多种协作功能,例如错误跟踪、功能请求、任务管理和 wiki。

  • 它是世界上最大的源代码托管地。


Git 和 GitHub 有什么区别?🤔

  • Git 是一个版本控制系统,而 GitHub 托管您的 git 存储库(即将它们放在您的 GitHub 帐户上,并使其可以从互联网上的任何地方访问)
  • Git 是一个命令行工具,而 GitHub 是一个网站。
  • Git 在您的本地系统上安装和维护(而不是在云中),GitHub 是一种基于云的存储库托管服务。

🎊 🎉 恭喜 🎉 🎊

您已完成本教程“git 和 GitHub 简介”

如果您喜欢本教程,请考虑通过点赞和分享本文来支持。

你也可以给我买杯咖啡

在Twitter上关注我

如果你想让我写一篇关于任何计算机科学概念的教程,请在评论区留言。
(如果有人需要,我可能会写一篇关于 git 命令/GitHub 工作流程的教程。)

欢迎任何反馈



参考
文章来源:https://dev.to/nirbhayvashisht/introduction-to-git-and-github-4jg8
PREV
关于 Service Worker 你想了解的一切
NEXT
JavaScript 中的所有数据类型