新書推薦:
《
就业、利息和货币通论(徐毓枬译本)(经济学名著译丛)
》
售價:NT$
306.0
《
瘦肝
》
售價:NT$
454.0
《
股票大作手回忆录
》
售價:NT$
254.0
《
秩序四千年:人类如何运用法律缔造文明
》
售價:NT$
704.0
《
民法典1000问
》
售價:NT$
454.0
《
国术健身 易筋经
》
售價:NT$
152.0
《
古罗马800年
》
售價:NT$
857.0
《
权力与相互依赖(第四版)(中译本修订版)
》
售價:NT$
658.0
|
編輯推薦: |
“这是一本非常有趣、易于理解且非常全面的指南,定能让你熟练掌握Git知识。”
——Robert C. Martin (Uncle Bob)
软件工匠、《代码整洁之道》作者
“Anna写了一本Git社区需要的书。无论你喜欢什么样的学习方式,这本书都能让你学会Git。”
——Ben Straub
开发者、《精通Git》作者之一
|
內容簡介: |
本书以简单、直观、形象的方式教授Git,让你对Git版本控制的工作原理建立深刻的感性认识。通过颜色、情景和实践练习,你定能信心满满,学会使用这个工具。本书循序渐进,你不会陷入未知术语或概念的困境。本书涵盖以下内容:下载Git,初始化本地仓库。把文件添加到暂存区域并进行提交。创建、切换和删除分支。合并和变基分支。使用远程仓库,包括克隆、推送、拉取和获取。使用拉取请求与他人协作。
|
關於作者: |
Anna Skoulikari是一位创意人士,她利用自己的沟通技巧娓娓道来,以简单、形象和可视化的方式教授Git。她通过各种媒介教授Git,包括评价很高的在线课程。她的技术工作经验丰富,曾担任用户体验设计师、前端开发人员和技术作家。
|
目錄:
|
目录
[ 前言] 1
[ 第1 章] Git 和命令行. 11
1.1 Git 是什么 11
1.2 图形用户界面和命令行 .13
1.3 打开命令行窗口 13
1.4 在命令行中执行命令 15
1.5 安装Git .18
1.6 命令选项和参数 19
1.7 清除命令行 19
1.8 打开文件系统窗口 20
1.9 操作目录 21
1.10 关闭命令行 29
1.11 设置Git 配置 29
1.12 准备文本编辑器 .32
1.13 集成式终端 32
1.14 小结 33
[ 第2 章] 本地仓库. 35
2.1 当前情况 35
2.2 仓库简介 36
2.3 初始化本地仓库 36
2.4 Git 的区域 40
2.5 为 Git 项目添加文件 45
2.6 小结 .47
[ 第3 章 ] 发起提交 49
3.1 当前情况 49
3.2 为什么要提交 .50
3.3 提交的两个步骤 50
3.4 查看提交列表 .58
3.5 小结 .60
[ 第4 章] 分支. 61
4.1 本地仓库的状态 61
4.2 为什么使用分支 63
4.3 未修改文件和已修改文件 67
4.4 在分支中提交 .70
4.5 创建分支 74
4.6 HEAD 是什么 .76
4.7 切换分支 78
4.8 在另一个分支中工作 81
4.9 小结 .83
[ 第5 章] 合并. 85
5.1 本地仓库的状态 85
5.2 合并简介 86
5.3 合并的类型 87
5.4 执行快进合并 .93
5.5 检出提交 .105
5.6 创建并切换到新分支 110
5.7 小结 111
[ 第6 章] 托管服务和身份验证113
6.1 托管服务和远程仓库 114
6.2 设置托管服务账户 . 114
6.3 设置身份验证凭据 . 115
6.4 小结 118
[ 第7 章] 创建并推送到远程仓库119
7.1 本地仓库的状态 . 119
7.2 开始Git 项目的两种方式 120
7.3 本地和远程仓库之间的交互 .122
7.4 为什么使用远程仓库 122
7.5 创建远程仓库并上传数据 .124
7.6 直接在托管服务中处理远程仓库 138
7.7 小结 139
[ 第8 章] 克隆和获取141
8.1 本地仓库和远程仓库的状态 .141
8.2 克隆远程仓库 142
8.3 删除分支 .151
8.4 Git 协作和分支 154
8.5 整合远程仓库的改动 162
8.6 删除分支(续) .167
8.7 小结 169
[ 第9 章] 三方合并171
9.1 本地仓库和远程仓库的状态 .171
9.2 三方合并的重要性 .173
9.3 设定三方合并情景 .177
9.4 定义上游分支 178
9.5 在提交之间多次编辑同一个文件 182
9.6 与其他人同时处理不同的文件 190
9.7 三方合并实践 194
9.8 从远程仓库中拉取改动 201
9.9 本地仓库和远程仓库的状态 .205
9.10 小结 205
[ 第10 章] 合并冲突.207
10.1 本地仓库和远程仓库的状态 207
10.2 合并冲突简介 209
10.3 如何解决合并冲突 210
10.4 设置合并冲突场景 211
10.5 解决合并冲突的流程 .217
10.6 解决合并冲突实践 220
10.7 与远程仓库保持更新 .223
10.8 同步仓库 224
10.9 本地仓库和远程仓库的状态 227
10.10 小结 .227
[ 第11 章] 变基.229
11.1 本地仓库和远程仓库的状态 229
11.2 在Git 中集成改动 231
11.3 变基的作用何在 232
11.4 设置变基示例 236
11.5 取消暂存和暂存文件 .238
11.6 准备变基 250
11.7 变基过程的五个阶段 .252
11.8 变基和合并冲突 257
11.9 变基分支实践 258
11.10 变基的黄金法则 .263
11.11 同步仓库 266
11.12 本地仓库和远程仓库的状态 269
11.13 小结 .269
[ 第12 章] 拉取请求(合并请求).271
12.1 本地仓库和远程仓库的状态 271
12.2 拉取请求简介 273
12.3 托管服务细节 274
12.4 为什么使用拉取请求 .275
12.5 了解如何合并拉取请求 277
12.6 准备发起拉取请求 280
12.7 定义上游分支更简单的方法 283
12.8 在托管服务中创建拉取请求 286
12.9 审核和批准拉取请求 .287
12.10 合并拉取请求 .288
12.11 删除远程分支 .290
12.12 同步并清理本地仓库 291
12.13 本地仓库和远程仓库的状态 295
12.14 小结 .296
[ 结语] 297
[ 附录A] 章节前需设置.299
[ 附录B] 命令速查表.327
[ 附录C] 视觉语言参考.331
|
內容試閱:
|
前言我从未想过写一本教授Git 的书。但是,经历一些事情之后,我幸运地发现一个创意,能以简单的方式教授这项技术。在一个Web 开发编程训练营中,我第一次听说Git。训练营的老师向学生们简单介绍了Git,可惜所有项目都是单独完成的,没有必要深入使用Git。编程训练营结束后,我找到一份初级前端开发工作,在一家大公司开发网站。我真正的Git 学习之旅从这份新工作的第一天就开始了。前几个月,作为一家大公司团队的一员,我胆战心惊。每当我需要使用Git 做一些看似极其复杂的事情时,我都害怕自己会破坏仓库,或者造成不可收拾的局面。为了顺利与同事共事,我决定系统自学Git。但是我很快发现,网上的资源大多不适合初学者。掌握基础知识后,我渐渐构思一个想法,借助丰富的色彩,以简单的视觉化方式教授这项技术。最终,我创建了一门在线课程,发布到网上。在制作这门课程的过程中,脑海深处又浮现一个想法:有一天我还要写一本书。我的课程收到很多正面反馈。终于,在2021 年夏天,我决定是时候开始写书了。你现在阅读的这本书就是这个决定的产物,希望它对你的Git 学习之旅有所帮助!目标读者本书适合想要学习Git 工作原理基础知识的人。它专为刚刚开始学习技术技能的人或担任非技术角色但需要使用Git 与技术同事协作的人而设计。可能受益于本书的人包括(但不限于)编程训练营的学生、计算机科学学生、技术作家、产品经理、设计师、初级开发人员、数据科学家和自学的程序员。本书为没有Git 经验以及有少量Git 经验的人而写。如果你没有Git 经验,那也不是问题,因为本书从零开始讲授,涵盖安装Git 和使用命令行。如果你已经有一些使用Git 或命令行的经验,第1 章权当复习。不过,建议你不要跳过第1 章,因为那一章将设置贯穿本书的Rainbow 项目。内容概述本书理实结合,你需要在自己的计算机中练习,巩固所学的Git 基本概念。本书贯穿两个项目:Rainbow 项目和Book 项目。Rainbow 是一个实践项目,意在练习所学的知识。这是一个简化的项目,仅用于学习。Book 是一个虚构的项目,我用它演示如何把Git 的某些功能用到更真实的项目中。下面深入介绍一下两个项目,顺便说说本书的内容编排。[ 备注 ]前言有一些你还不熟悉的术语,例如仓库和提交。不要担心,我将在接下来的章节解释所有概念。Rainbow 项目我们将通过Rainbow 项目学习Git 基础知识。为了循序渐进,你应该逐章阅读第1 章到第12 章,并在自己的计算机中完成每一道练习。例如,第4 章中的练习假定你已经完成第1 章、第2 章和第3 章中的练习。仓库根本而言,仓库是Git 项目的副本。首先,为了开发Rainbow 项目,你将创建一个名为rainbow 的本地仓库。随后(在第7 章),你将创建一个名为rainbowremote的远程仓库。最后,第8 章模拟与朋友合作开发Rainbow 项目,再创建一个名为friend-rainbow 的本地仓库。从第8 章开始,每当提到你的“朋友”做某事时,你都必须在friend-rainbow 仓库中执行相关操作。[ 备注 ]当我说到Rainbow(首字母大写)项目时,我指的是整个项目:从一个仓库开始,最终包含三个仓库。当我提到rainbow 项目目录或rainbow仓库时(首字母小写),我指的是Rainbow 项目中特定的本地仓库。提交在Rainbow 项目中,你将创建和编辑文件,列出构成一道彩虹的颜色,以及一些其他颜色。这并不是应由Git 控制的真实项目,而是一个简化的项目,目的是让你专注于学习,而不分心构建复杂的功能。在整本书中,我将使用图表说明Rainbow 项目中发生的事情。每次向Rainbow项目添加一个颜色,你都要向仓库发起一次提交(commit)。一个提交基本上代表项目的一个版本。在图表中,提交由添加的颜色绘制的圆圈表示,提交的名称也使用颜色的名称。例如,将要添加到Rainbow 项目中的第一个颜色是红色(red),因此代表该提交的圆圈将被涂成红色,我们将其称为red 提交。为了照顾色觉缺失的读者,我将在图表中注上提交的名称(或名称的缩写)。图1 是红色提交的图表示例。附录鉴于本书的编排方式,你应该从第1 章?第12 章依次阅读,但是在某些情况下,你可能希望或需要从特定的章节开始。例如:?? 你已经完成了整本书中的练习,想从特定的章节开始复习。?? 前一章的 Rainbow 项目出现了问题,你无法解决,想从新的一章重新开始。遇到这种情况,你可以参照附录A 中的说明重新创建Rainbow 项目,达到某一章开头的状态。附录B 涵盖每一章介绍的命令,作为快速参考指南。附录C 说明本书图表使用的视觉语言。Book 项目Book 是一个虚构项目,我用它演示在更真实的项目中如何使用Git。这个项目假设我在写一本书,使用Git 对文件进行版本控制。这本书由10 个章节组成,对应10 个文本文件,一章一个:chapter_one.txt、chapter_two.txt 等。有时,我也会模拟与合著者和(或)编辑一起参与图书项目的情况。这些讨论放在“Book示例项目”插注部分。Book 项目不是我们的关注重点。我只是通过它进一步演示和说明Git 的某些功能。除了“Book 示例项目”插注之外,本书还有一些其他插注。下面具体说明。书中的插注下面简要说明本书中的几种插注。Book 示例项目如前所述,“Book 示例项目”插注基于Book 项目提供其他Git 功能和命令的说明和示例。跟我做“跟我做”插注列出你应在计算机中执行的步骤。步骤中的粗体命令必须在命令行中输入并执行。有输出的命令都会提供示例输出。给出的输出基于我在写作本书时开发的Rainbow 项目,由macOS 操作系统生成,不过在Microsoft Windows 中的输出应该是相同的。如果Microsoft Windows 和macOS 的输出差异巨大,我会在文中指出。命令一览“命令一览”插注介绍有用的命令,其中一些命令在“跟我做”插注中有用到。附录B 还提供了按章节分组的所有重要命令的完整列表,作为参考。图解“图解”插注通过图表说明Rainbow 项目中发生的事情。这种插注(以及插图)用到两个重要图表:Git 图和仓库图。Git 图在第2 章介绍,仓库图从第4 章开始使用。书中的每个图表都是一步步得来的,文中有相应说明。附录C 还提供了书中使用的视觉语言的概述,作为参考。备注“备注”插注提供与正文相关的有用信息。配套仓库我的目标是在本书中提供学习Git 所需的大部分信息,但有些技术和流程变化频繁,无法在书中记录。我在GitHub 中创建了公开仓库Learning Git(https://github.com/gitlearningjourney/learning-git),提供相关技术和流程的最新信息。除此之外,该仓库还包含:?? 下载 Git 的说明。?? 使用托管服务的资源链接。?? 为了访问远程仓库,对 HTTPS 或 SSH 的设置。需要查阅Learning Git 仓库获得更多指导时,我会在书中指出。这不是一本什么样的书这不是一本参考书,不涵盖每一个Git 命令(相信我,特别多)。这也不是一份Git 高级指南。许多Git 功能在本书中没有讨论,因为它们对于我想教你的基本操作不是必需的。书中涵盖的功能经过我的精心挑选。我的目标是让你对Git 基础知识建立清晰的感性认知,为继续学习其他功能奠定坚实的基础。本书也不会告诉你应该使用什么样的Git 工作流程,或者应该如何使用Git 的各项功能。我尽可能避免发表个人见解,而是专注于教你认识工具。至于如何使用工具,根据每个人的背景和偏好,各有不同。本书尽量不约束你的选择。例如,你可以使用自己喜欢的任何文本编辑器或托管服务完成书中的练习。章节编排本书分为两个逻辑部分。第一部分(第1~5 章)学习在自己的计算机中操作本地仓库。第6~12 章还将学习使用托管服务和远程仓库。下面简要介绍每一章的内容。?? 第 1 章为使用 Git 管理项目做好准备:安装 Git,学习一些命令行基础知识,设置Git,为本书后面用到的项目创建目录,以及准备文本编辑器。?? 第2章把项目目录变成Git仓库。我将介绍表示Git不同区域的Git图,包括工作目录、暂存区域、提交历史和本地仓库。本章末尾将在项目目录中创建第一个文件。?? 第 3 章学习并执行在本地仓库中进行首次提交的两个主要步骤。?? 第 4 章学习分支,了解分支是什么、如何创建分支、如何切换分支,以及如何判断所在的分支。?? 第 5 章学习两种合并,执行快进合并。?? 第 6 章为使用远程仓库做准备,首先选择托管服务,然后设置身份验证信息,通过HTTPS 或SSH 连接远程仓库。?? 第 7 章讨论使用本地和远程仓库的不同方法。你将学习如何创建远程仓库和上传数据。?? 第 8 章开始模拟与其他人一起处理 Git 项目。为此,你要创建第二个本地仓库,假装它属于你的朋友。这位朋友在自己的计算机中与你一道开发Rainbow 项目。在此过程中,你将学习如何克隆远程仓库和获取数据。?? 第 9 章执行三方合并,学习获取数据和拉取数据之间的区别。?? 第 10 章通过一个示例说明如何解决三方合并中的冲突。?? 第 11 章学习变基。这是把一个分支的改动整合到另一个分支的第二种方式(第一种是合并)。?? 第12章学习拉取请求(也叫合并请求)及其对Git项目协作的促进。?? 本书还有三篇附录,内容见“附录”一节。排版约定本书使用以下排版约定。斜体(Italic)表示新术语、URL、电子邮件地址和重点。等宽字体(Constant width)表示命令、命令输出、文件名、目录名、分支名、仓库名和其他屏上文本。等宽粗体(Constant width bold)表示应由用户键入或输入的命令或其他文本。带尖括号的等宽字体()表示应替换为用户提供的值或根据上下文确定的值的文本。O’Reilly 在线学习平台(O’Reilly Online Learning)近40 年来,O’Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。公司独有的专家和改革创新者网络通过O’Reilly 书籍、文章以及在线学习平台,分享他们的专业知识和实践经验。O’Reilly 在线学习平台按照您的需要提供实时培训课程、深入学习渠道、交互式编程环境以及来自O’Reilly 和其他200 多家出版商的大量书籍与视频资料。更多信息,请访问网站:https://www.oreilly.com/。联系我们任何有关本书的意见或疑问,请按照以下地址联系出版社。美国:O’Reilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中国:北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)奥莱利技术咨询(北京)有限公司勘误、示例和其他信息,请访问https://oreil.ly/learning-git 获取。要了解更多O’Reilly 图书和课程信息,请访问http://oreilly.com。我们的LinkedIn:http://linkedin.com/company/oreilly-media。我们的Twitter:http://twitter.com/oreillymedia。我们的YouTube:http://youtube.com/oreillymedia。致谢感谢在本书写作过程中支持我的所有人。感谢我的朋友和家人,其中一些人被迫成为本书早期版本的测试读者。感谢在这个创意项目实施过程中给予我支持的整个O’Reilly 团队。感谢所有技术审校和测试读者,谢谢你们一遍遍阅读,向我提供宝贵的反馈意见。对了,还要感谢我的伴侣耐心守候,因为这本书的出版日期一再推迟。
|
|