在 Ubuntu 上安装 Git2025年3月17日 | 阅读11分钟 Git 是一个开源的分布式版本控制系统,对所有人免费。它能够以高速度和高效率处理从小到大的项目。它旨在协调程序员之间的工作。版本控制允许您跟踪和与团队成员在同一个工作空间中协同工作。 Git 是最常用的源代码管理 (SCM) 系统,用户数量超过了 SVN 等早期 VCS 系统。让我们了解如何在 Ubuntu 服务器上安装 Git。 Git 简介Git 侧重于数据完整性、速度和非线性、分布式工作流支持。最初,Git 于 2005 年由 Linus Torvalds 为 Linux 内核开发启动,其他内核开发者也对其早期开发做出了贡献。Junio Hamano 自 2005 年以来一直是主要维护者。 与几乎所有的客户端-服务器系统以及几乎所有的分布式版本控制系统不同,所有计算机上的 Git 目录都是一个完全开发的存储库,具有完整的版本跟踪和历史记录功能,无需中央服务器或网络访问。Git 是一个开源的免费软件,根据 GPL-2.0-only 许可证分发。 Git 简史2005 年 4 月,在多位内核开发者放弃使用 BitKeeper(一个他们用于管理项目的 SCM (源代码管理) 系统)后,Git 的开发开始。 Linus Torvalds 希望拥有一个可以像 BitKeeper 一样使用的分布式系统,但现有的开源系统未能满足他的要求。Torvalds 曾提到一个源代码管理系统需要三十秒才能打一个补丁并更新所有相关元数据,并认为这无法满足 Linux 内核开发的规模需求,在 Linux 内核开发中,与同事维护者同步可能需要同时进行 250 次此类操作。他表示,根据他的设计原则,打补丁不应花费 3 秒以上,并补充了另外三个目的:
Git 的设计Git 的设计灵感来源于 Monotone 和 BitKeeper。最初 Git 被开发为一个版本控制系统的底层引擎,其他开发者可以为其指定前端,如 StGIT 或 Cogito。 特性Git 的设计是 Torvalds 管理大型分布式开发项目的 Linux 经验、从类似项目获得的对文件系统性能的了解以及生成一个高效系统的需求的综合。这些条件导致了以下实现选项:
数据结构Git 的基本单元本身并不是一个源代码管理系统。Git 集成了经典 SCM 所需的全部功能,这些功能大多是根据需要创建的,然后从这种初始设计方法中不断完善和增强。 Git 包含两种不同的数据结构。第一种数据结构是一个可变的索引(也称为缓存或暂存区),它缓存有关活动目录和即将提交的修订版的信息。第二种数据结构是一个仅追加的不可变对象数据库。 不可变数据库包含五种对象类型:
Blob: Blob 是二进制大对象的缩写,表示文件的内容。Blob 不包含时间戳、文件名或其他元数据。所有 Blob 都是 Git 中文件的一个版本,它保存文件的数据。 Tree: Tree 对象相当于一个目录。它包含一个文件列表,每个文件都带有几个类型位和一个指向 Tree 对象或 Blob 的引用,该引用是文件、目录或符号链接的内容。这些对象是源树的快照。 Commit: Commit 对象将 Tree 对象与历史联系起来。它包含一个 Tree 对象名称、一条日志消息、一个时间戳以及一个或多个父 Commit 对象名称。 Tag: Tag 对象可以描述为一个容器,它包含对其他对象的引用,并且可以存储与 Git 所跟踪的特定数据版本相关的附加元数据。它最常用于存储 Git 所跟踪的特定数据版本的任何 Commit 对象的数字签名。 Packfile: Packfile 对象将多个其他对象收集到一个 zlib 压缩的组中,以便于传输和在网络协议上保持紧凑。 Git 还存储称为 refs(或 references)的标签,以表示多个提交的位置。它们是:
所有对象都由其内容的 SHA-1 哈希值标识。Git 计算哈希值并将其值应用于对象的名称。该对象被放置在一个与哈希值的前两个字符相同的目录中。剩余的哈希值用作对象的 E 盘文件名。 此外,Git 将所有文件修订版存储为特殊的 blob。通过检查 Commit 和 Tree 对象可以检测这些 blob 之间的关系。新添加的对象通过 zlib 压缩以其原始形式存储。这会很快消耗大量磁盘空间,因此可以将对象合并到 pack 中,pack 应用增量压缩以节省空间,将 blob 保存为它们相对于其他 blob 的修改。
引用在 Git 数据库中,引用是所有未被显式引用或通过垃圾收集命令自动清理的对象。一个对象可能由一个显式引用或另一个对象引用。Git 知道不同的引用类型。创建、移动或删除引用的命令有所不同。git show-ref 命令可以列出所有引用。一些类型包括:
Git 的实现主要来说,Git 是在 Linux 上开发的。此外,它还支持最主流的操作系统,如 BSD(FreeBSD、OpenBSD、NetBSD 和 DragonFly BSD)、Windows、macOS 和 Solaris。 第一个 Git Windows 端口主要是 Linux 仿真环境,托管 Linux 版本。在 Windows 下,安装 Git 会创建一个同名的程序文件目录,其中包含 MSYS2 的 Mingw-e64 端口、Perl 5、GNU 编译器集合以及许多其他 Linux 库和实用程序的 Windows 仿真或端口。原生的 Windows Git 构建目前以 64 位和 32 位安装程序的形式分发。目前,Git 的官方网站提供了 Windows 版 Git,仍然使用 MSYS2 环境。
Git 服务器Git 可以用作服务器,因为它是一个分布式的版本控制系统。它通过内置的 git daemon 命令导出,该命令启动一个在 GIT 协议上活动的 TCP 服务器。通过包含访问控制、通过 Web 界面显示 Git 存储库内容以及处理多个存储库,Git 支持 HTTP 服务器。 现有的 Git 存储库可以被复制和分发,以便被他人用作集中式存储库。此外,只需安装 Git 软件并允许用户登录,就可以通过远程 shell 访问它。通常,Git 服务器监听 TCP 的 9418 端口。 开源
Gerrit 的 3.0 版本中,所有配置都将保留为 Git 存储库,并且不需要数据库即可运行。Gerrit 在核心中包含一个拉取请求功能,尽管缺乏 GUI。
Git 服务器即服务 有几种 Git 存储库服务可供使用。一些最著名的包括 GitLab、Bitbucket、SourceForge 和 GitHub。 Git 的采用截至 2014 年 5 月,Eclipse Foundation 在其调查中指出,Git 是最广泛使用的源代码管理工具,42.9% 的专业应用程序开发人员表示他们将 Git 作为其主要源代码控制系统。Black Duck Open Hub 开源目录报告了开源项目之间类似的采用率。 另一方面,Stack Overflow 在 2015 年、2017 年、2018 年和 2022 年的调查中增加了版本控制。在这些调查中,Git 是受访开发人员的最爱,在 2022 年的比例高达 93.9%。 Extensions 有几种 Git 扩展,例如 Git LFS,已经可用,它最初是 GitHub 社区中的一个 Git 扩展,现在已被其他存储库广泛使用。通常,扩展是由多个独立的人开发和管理的,尽管一个被广泛使用的扩展最终可能会被合并到 Git 中。 其他一些开源 Git 扩展包括:
Microsoft 开发的 **VFS** (Virtual File System) for Git(以前称为 **GVFS** 或 **Git Virtual File System**)扩展,用于管理 Windows 的源代码树大小,作为其 2017 年从 Perforce 迁移的一部分。Git Virtual File System 允许克隆存储库使用一个代理,该代理的内容可以在文件被使用时下载。 Git 的安全性Git 不提供访问控制技术,但它被设计为与其他擅长访问控制的工具配合使用。 2014 年 12 月 17 日,在 macOS 和 Windows Git 客户端版本中发现了一个漏洞。攻击者可以通过在存储库中创建一个名为 **.git** 的恶作剧 Git 树(具有不同的案例)并在子目录 **.git/hooks** 中放置一些恶意文件,在目标系统上实现任意代码执行,该存储库由攻击者创建或由攻击者修改。 Git 的 2.6.1 版本(发布于 2015 年 9 月 29 日)包含了一个允许任意代码执行的安全漏洞补丁。如果攻击者能够诱使受害者克隆一个命名 URL,那么此漏洞是难以察觉的,因为任意命令本身就设置在该 URL 中。此外,递归克隆也存在漏洞,因为它们允许存储库控制器通过 .gitmodules 文件定义任意 URL。 Git 安装我在 Ubuntu 16.04 LTS 上完成了此安装。但给出的命令也应该适用于其他版本。 以下是在 Ubuntu 服务器上安装 Git 的步骤: 步骤 1:开始通用操作系统和包更新 首先,我们应该开始进行通用的操作系统和包更新。为此,请运行以下命令: 现在我们已经开始了通用的操作系统和包更新。在此之后,我们将运行服务器上的通用更新,以便我们可以开始安装 Git。为此,请运行以下命令: 步骤 2:安装 Git 要安装 Git,请运行以下命令: 上面的命令将在您的系统上安装 Git,但它可能会要求您确认下载和安装。 步骤 3:确认 Git 安装 要确认安装,请在编辑器中按 'y' 键。现在,Git 已安装并准备使用。 当中央安装完成后,首先检查以确保可执行文件已设置并可访问。最好的方法是使用 git version 命令。它将运行如下: 输出 git version 2.24.0 步骤 4:为首次使用配置 Git 现在您可以在系统上开始使用 Git 了。您可以探索版本控制系统的许多功能。要开始使用 Git,您需要配置初始用户访问过程。这可以通过 git config 命令完成。 假设我想注册一个用户,用户名为 "javaTpoint",邮箱地址为 "<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="">[email protected]</a>",那么它将如下完成: 要注册用户名,请运行以下命令: 要为给定作者注册电子邮件地址,请运行以下命令: 现在,您已成功为版本控制系统注册了一个用户。 重要的是要理解,**git config** 工具是按用户工作的。例如,如果我们在 Git 上注册了一个名为 "john" 的用户。那么在同一台机器上,还可以有另一个名为 "Mike" 的用户注册在 Git 上。为此,Mike 必须从他的用户帐户运行相同的命令。两个用户提交的提交都将以他们的详细信息在 Git 中完成。 要深入了解 git config 命令,请访问 此处。 下一主题在 Mac 上安装 Git |
我们请求您订阅我们的新闻通讯以获取最新更新。