内容简介
本书是一本关于 Git 开发与管理的指南,全面介绍了 Git 这一版本控制系统。开篇阐述了 Git 成为行业标准的历程,剖析其在多人协作项目中的重要性。书中详细讲解 Git 的基础使用,包括命令行操作和 GitHub 等平台的应用。深入探讨关键功能,如分支管理、合并与变基等。还介绍了重要的 Git 平台及其附加功能,以及 Git 在实践中的多种应用场景,如管理版本配置文件、项目迁移等。最后,针对使用中常见的错误信息提供解决方案,并总结了关键命令。
目录
第 1 章 Git 十分钟入门 ………………………………………………… 1
1.1 Git 是什么 ……………………………………………………………… 1
1.2 从 GitHub 下载软件 …………………………………………………… 3
1.3 支持 Git 的编程 ………………………………………………………… 5
第 2 章 学以致用 ……………………………………………………… 9
2.1 安装 git 命令 …………………………………………………………… 9
2.2 设置 GitHub 账户和存储库 ……………………………………………17
2.3 使用 git 命令 ……………………………………………………………22
2.4 身份验证 …………………………………………………………………36
2.5 以有趣的方式学习 Git(Githug) ………………………………………46
2.6 集成开发环境(IDE)和编辑器 ………………………………………48
2.7 向第三方 GitHub 项目贡献 ……………………………………………55
2.8 同步与备份 ………………………………………………………………57
第 3 章 Git 的基本原则 ……………………………………………… 59
3.1 术语 ………………………………………………………………………59
3.2 Git 数据库 ………………………………………………………………63
3.3 提交 ………………………………………………………………………67
3.4 提交撤销 …………………………………………………………………74
3.5 分支 ………………………………………………………………………83
3.6 合并 ………………………………………………………………………88
3.7 暂存 ………………………………………………………………………96
3.8 远程仓库 …………………………………………………………………97
3.9 解决合并冲突 ………………………………………………………… 107
3.10 变基 ………………………………………………………………… 115
3.11 标签 ………………………………………………………………… 120
3.12 提交引用 …………………………………………………………… 125
3.13 Git 内部细节 ………………………………………………………… 130
第 4 章 Git 仓库中的数据分析 ……………………………………… 134
4.1 搜索提交 ……………………………………………………………… 134
4.2 搜索文件 ……………………………………………………………… 145
4.3 搜索错误 ……………………………………………………………… 150
4.4 统计与可视化 ………………………………………………………… 152
第 5 章 GitHub ……………………………………………………… 157
5.1 拉取请求 ……………………………………………………………… 158
5.2 操作 …………………………………………………………………… 162
5.3 包管理器 ……………………………………………………………… 170
5.4 自动安全扫描 ………………………………………………………… 176
5.5 GitHub 其他功能 ……………………………………………………… 179
5.6 GitHub 命令行界面 …………………………………………………… 185
5.7 Codespaces …………………………………………………………… 188
第 6 章 GitLab………………………………………………………… 190
6.1 本地安装与云端 ……………………………………………………… 191
6.2 安装 …………………………………………………………………… 191
6.3 第一个项目 …………………………………………………………… 198
6.4 流水线 ………………………………………………………………… 200
6.5 合并请求 ……………………………………………………………… 209
6.6 Web IDE ……………………………………………………………… 211
6.7 Gitpod ………………………………………………………………… 212
第
前言/序言
当多个人共同参与一个软件项目时,就需要一个系统以可追溯的方式存储 所有的更改。这样的版本控制系统还必须让所有开发人员都能访问整个项目, 以使每位程序员都能了解其他人员最近的工作内容、尝试他人的代码,并测试 这些代码与自己所做更改之间的交互情况。
在过去,曾有过许多版本控制系统,如 Concurrent Versions System(CVS)、 Apache Subversion(SVN)或 Microsoft Visual SourceSafe(VSS),但是,在过去 的十年里,Git 已成为事实上的标准版本控制系统。
GitHub 网络平台在这一成功中发挥了重要作用,它极大地简化了 Git 的 学习和使 用。当 然,GitHub 并非唯一的 Git 平台,主要的竞争对手还包括 GitLab、Azure DevOps Services 和 Bitbucket。
人人都在用,却没人懂它
尽管 Git 备受推崇,但它显然是由专业人士为专业人士设计的,你需要牢 记以下几点:
● 达到一个目标有多种方法。对于已经熟悉 Git 的读者来说,这个观点很 有用,但如果你刚开始学习 Git,这种多样性可能会让你感到困惑。
● Git 开源项目的文档丰富。在手册页和网站上,每一个 git 命令和每一种 可能的应用都以极其细致的方式进行了说明,并且考虑了很多可能的特殊情 况,这些可以帮助你快速地上手。
● Git 一些术语有多种含义,而且容易混淆的子命令可能会执行截然不同 的任务。一些术语的含义会根据上下文的不同而有所不同,或者在文档中的使 用不一致。
我们得坦白,尽管我们已经使用 Git 多年,但在写这本书的过程中还是学 到了很多!
关于本书
我们可以以极简的方式使用 Git,但是,日常操作中的微小偏差也可能导 致令人惊讶且通常难以理解的副作用或错误。
每个 Git 初学者都经历过那种感受:当一个 git 命令返回一条难以理解的 错误信息时,你会吓出一身冷汗,怀疑自己是否刚刚永久性地破坏了所有开 发人员的存储库,并试图找到合适的人来用正确的命令说服 Git 继续工作。因 此,不深入学习 Git 是没有用的,只有充分了解 Git 的工作原理,你才能有信 心干净利落地解决合并冲突或其他问题。
同时,我们也知道,如果我们不优先考虑基本功能,这本书就无法发挥作 用。这本书内容很多,但它并不是 Git 的全包式指南,我们不可能考虑每一种 特殊情况或介绍每一个 Git 子命令。我们写这本书就是为了把真实有用的东西 挑出来,去掉那些不实的部分。本书分为以下 12 章。
在第 1 章进行简短介绍之后,我们将在第 2 章至第 4 章中介绍 Git 的使 用,将重点介绍在命令级别使用 Git,并简要讨论 GitHub 或其他用户界面 (UI)等平台。对于 Git 初学者,我们建议先阅读前 4 个章节。即使你有一些 Git 经验,也一定要花几个小时阅读第 3 章,并在测试存储库中尝试我们介绍 的一些技术(合并、变基等)。
接下来的 3 个章节介绍了最重要的 Git 平台。特别是对于复杂的项目,这 些平台提供了有用的附加功能,例如执行自动测试或实现持续集成(CI)。当 然,我们也会向你展示如何托管自己的 Git 存储库。使用 GitLab、Gitea 或 Gitolite,可以相对容易地实现这一目标。
然后,我们将从基础转向实践。在第 8 章中,我们将描述使用 Git 引导众 多开发人员走上有序路径(分支)的流行模式。第 9 章重点关注 Git 的高级功 能,如钩子、子模块、子树和双重身份验证。第 10 章将展示如何在 Linux 系 统上使用 Git 管理版本配置文件(dotfiles)或整个 /etc 目录,如何将项目从 SVN 迁移到 Git,以及如何使用 Git 和 Hugo 快速轻松地实现一个简单的网站。
第 11 章将帮助你解决难以理解的错误信息所带来的僵局。在这一章中,你还 会找到实现特殊请求的说明,例如从 Git 存储库中删除大文件或仅对选定文件 执行合并操作。
在本书的结尾,第 12 章简要总结了最重要的 git 命令及其选项。 或许你只想知道足够多的内容,以便能够准确地使用 Git,进而推动项目的进展。我们理解这种动机,但是,我们仍然强烈建议您比原计划多花几个小 时来系统地了解 Git。
我们向你保证,你阅读本书之后一定会感觉物有所值。虽然,你当前的关 注点主要在于项目,但 Git 技能是作为一名开发者在未来许多项目中都需要掌 握的长期核心竞争力。
祝你在使用 Git 的过程中取得圆满成功!