0%

Pro Git中文版 PDF 下载

《Pro Git中文版》

链接: https://pan.baidu.com/s/1anGEASiinAIU3eo_tcnGUw 提取码: eeg1

高效的版本控制是成功开发软件项目的关键。自2005年诞生以来,Git以其分布式特点和对非线性开发的强有力支持,成为了许多软件项目的版本控制系统。本书不仅是Git日常操作指南,而且深入剖析了Git的内部原理,能有效帮助程序员提升软技能。如果你刚刚启程探索Git,本书对于Git的用法、基本命令和分支机制的讲解将助你轻松入门、不走弯路。如果你在Git之路上已经走了一些时日,本书关于Git服务器、配置文件和钩子系统的内容将为你补充继续前行所需的能量。如果你不得不同时使用Git和其他版本控制系统,本书会教你如何将Git作为客户端来轻松应对此种情景。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561

目录

章 入门 1

1.1 关于版本控制 1

1.1.1 本地版本控制系统 1

1.1.2 集中式版本控制系统 2

1.1.3 分布式版本控制系统 3

1.2 Git简史 4

1.3 Git基础 4

1.3.1 快照,而非差异 4

1.3.2 几乎所有操作都在本地执行 5

1.3.3 Git的完整性 6

1.3.4 Git通常只增加数据 6

1.3.5 三种状态 7

1.4 命令行 8

1.5 安装Git 8

1.5.1 Linux上的安装方法 8

1.5.2 Mac上的安装方法 8

1.5.3 Windows上的安装方法 9

1.5.4 从源码安装 9

1.6 Git的首次配置 10

1.6.1 用户身份 11

1.6.2 个人编辑器 11

1.6.3 检查个人设置 12

1.7 获取帮助 12

1.8 小结 12

第2章 Git基础 13

2.1 获取Git仓库 13

2.1.1 在现有目录中初始化Git仓库 13

2.1.2 克隆现有仓库 14

2.2 在Git仓库中记录变更 14

2.2.1 查看当前文件状态 15

2.2.2 跟踪新文件 16

2.2.3 暂存已修改的文件 16

2.2.4 显示更简洁的状态信息 18

2.2.5 忽略文件 18

2.2.6 查看已暂存和未暂存的变更 19

2.2.7 提交变更 21

2.2.8 跳过暂存区 22

2.2.9 移除文件 23

2.2.10 移动文件 24

2.3 查看提交历史 25

2.4 撤销操作 30

2.4.1 撤销已暂存的文件 30

2.4.2 撤销对文件的修改 31

2.5 远程仓库的使用 32

2.5.1 显示远程仓库 32

2.5.2 添加远程仓库 33

2.5.3 从远程仓库获取和拉取数据 34

2.5.4 将数据推送到远程仓库 34

2.5.5 检查远程仓库 35

2.5.6 删除和重命名远程仓库 36

2.6 标记 36

2.6.1 列举标签 36

2.6.2 创建标签 37

2.6.3 注释标签 37

2.6.4 轻量标签 38

2.6.5 补加标签 38

2.6.6 共享标签 39

2.6.7 检出标签 39

2.7 Git别名 40

2.8 小结 41

第3章 Git分支机制 42

3.1 分支机制简述 42

3.1.1 创建新分支 44

3.1.2 切换分支 45

3.2 基本的分支与合并操作 48

3.2.1 基本的分支操作 48

3.2.2 基本的合并操作 52

3.2.3 基本的合并冲突处理 53

3.3 分支管理 55

3.4 与分支有关的工作流 56

3.4.1 长期分支 57

3.4.2 主题分支 58

3.5 远程分支 59

3.5.1 推送 63

3.5.2 跟踪分支 64

3.5.3 拉取 66

3.5.4 删除远程分支 66

3.6 变基 66

3.6.1 基本的变基操作 66

3.6.2 更有趣的变基操作 69

3.6.3 变基操作的潜在危害 71

3.6.4 只在需要的时候执行变基操作 74

3.6.5 变基操作与合并操作的对比 75

3.7 小结 75

第4章 Git服务器 76

4.1 协议 76

4.1.1 本地协议 76

4.1.2 协议 78

4.1.3 SSH协议 79

4.1.4 Git协议 80

4.2 在服务器上搭建Git 80

4.2.1 将裸仓库放置在服务器上 81

4.2.2 小型团队配置 82

4.3 生成个人的SSH公钥 83

4.4 设置服务器 84

4.5 Git守护进程 85

4.6 智能 87

4.7 GitWeb 88

4.8 GitLab 90

4.8.1 安装 90

4.8.2 管理 91

4.8.3 基本用法 93

4.8.4 协作 93

4.9 第三方托管选择 94

4.10 小结 94

第5章 分布式Git 95

5.1 分布式工作流 95

5.1.1 集中式工作流 95

5.1.2 集成管理者工作流 96

5.1.3 司令官与副官工作流 97

5.1.4 工作流小结 97

5.2 为项目做贡献 98

5.2.1 提交准则 98

5.2.2 私有小型团队 100

5.2.3 私有管理团队 105

5.2.4 派生的公开项目 110

5.2.5 通过电子邮件接受补丁的公开项目 113

5.2.6 小结 115

5.3 维护项目 115

5.3.1 使用主题分支 115

5.3.2 应用来自电子邮件的补丁 116

5.3.3 检出远程分支 118

5.3.4 确定引入内容 119

5.3.5 整合所贡献的工作结果 120

5.3.6 为发布版打标签 125

5.3.7 生成构建编号 126

5.3.8 准备发布 126

5.3.9 简报 127

5.4 小结 127

第6章 GitHub 128

6.1 账号设置与配置 128

6.1.1 SSH访问 129

6.1.2 头像 130

6.1.3 电子邮件地址 131

6.1.4 双因素身份验证 132

6.2 为项目做贡献 132

6.2.1 派生项目 132

6.2.2 GitHub流程 133

6.2.3 拉取请求的高级用法 140

6.2.4 Markdown 144

6.3 项目维护 148

6.3.1 创建新仓库 148

6.3.2 添加协作人员 150

6.3.3 管理拉取请求 150

6.3.4 提醒和通知 155

6.3.5 特殊文件 158

6.3.6 项目管理 159

6.4 组织管理 160

6.4.1 组织的基本操作 160

6.4.2 团队 160

6.4.3 审计日志 162

6.5 GitHub脚本化 162

6.5.1 钩子系统 162

6.5.2 GitHub API 166

6.6 小结 170

第7章 Git工具 171

7.1 选择修订版本 171

7.1.1 单个修订版本 171

7.1.2 提交范围 175

7.2 交互式暂存 177

7.2.1 暂存和取消暂存文件 178

7.2.2 暂存补丁 180

7.3 储藏与清理 181

7.3.1 储藏工作成果 181

7.3.2 灵活运用储藏 183

7.3.3 从储藏中创建分支 184

7.3.4 清理工作目录 184

7.4 签署工作 186

7.4.1 GPG简介 186

7.4.2 签署标签 186

7.4.3 验证标签 187

7.4.4 签署提交 187

7.4.5 所有人都得签署 189

7.5 搜索 189

7.5.1 git grep 189

7.5.2 Git日志搜索 190

7.6 重写历史 192

7.6.1 修改 近一次提交 192

7.6.2 修改多个提交消息 192

7.6.3 重排提交 194

7.6.4 压缩提交 195

7.6.5 拆分提交 195

7.6.6 超强命令:filter-branch 196

7.7 重置揭秘 197

7.7.1 三棵树 198

7.7.2 工作流 199

7.7.3 重置的作用 203

7.7.4 利用路径进行重置 205

7.7.5 压缩 207

7.7.6 检出 209

7.7.7 小结 210

7.8 合并的高级用法 211

7.8.1 合并冲突 211

7.8.2 撤销合并 220

7.8.3 其他类型的合并 222

7.9 rerere 225

7.10 使用Git调试 230

7.10.1 文件标注 230

7.10.2 二分查找 232

7.11 子模块 233

7.11.1 开始使用子模块 233

7.11.2 克隆含有子模块的项目 235

7.11.3 开发含有子模块的项目 236

7.11.4 子模块技巧 245

7.11.5 子模块的问题 246

7.12 打包 248

7.13 替换 251

7.14 凭据存储 257

7.14.1 底层实现 258

7.14.2 自定义凭据缓存 259

7.15 小结 261

第8章 自定义Git 262

8.1 配置Git 262

8.1.1 客户端基本配置 262

8.1.2 Git中的配色 265

8.1.3 外部的合并与diff工具 265

8.1.4 格式化与空白字符 268

8.1.5 服务器配置 270

8.2 Git属性 270

8.2.1 二进制文件 271

8.2.2 关键字扩展 273

8.2.3 导出仓库 276

8.2.4 合并策略 277

8.3 Git钩子 277

8.3.1 安装钩子 277

8.3.2 客户端钩子 278

8.3.3 服务器端钩子 279

8.4 Git强制策略示例 280

8.4.1 服务器端钩子 280

8.4.2 客户端钩子 285

8.5 小结 288

第9章 Git与其他系统 289

9.1 作为客户端的Git 289

9.1.1 Git与Subversion 289

9.1.2 Git与Mercurial 298

9.1.3 Git与Perforce 305

9.1.4 Git与TFS 317

9.2 迁移到Git 325

9.2.1 Subversion 325

9.2.2 Mercurial 327

9.2.3 Perforce 329

9.2.4 TFS 330

9.2.5 自定义导入工具 331

9.3 小结 337

0章 Git内幕 338

10.1 底层命令和高层命令 338

10.2 Git对象 339

10.2.1 树对象 341

10.2.2 提交对象 343

10.2.3 对象存储 345

10.3 Git引用 346

10.3.1 HEAD 348

10.3.2 标签对象 348

10.3.3 远程引用 349

10.4 包文件 350

10.5 引用规格 352

10.5.1 推送引用规格 354

10.5.2 删除引用 354

10.6 传输协议 354

10.6.1 哑协议 355

10.6.2 智能协议 356

10.6.3 协议小结 359

10.7 维护与数据恢复 359

10.7.1 维护 359

10.7.2 数据恢复 360

10.7.3 移除对象 362

10.8 环境变量 365

10.8.1 全局行为 365

10.8.2 仓库位置 365

10.8.3 路径规格 366

10.8.4 提交 366

10.8.5 网络 366

10.8.6 差异与合并 367

10.8.7 调试 367

10.8.8 杂项 369

10.9 小结 369

附录A 其他环境中的Git 370

附录B 在应用程序中嵌入Git 381

附录C Git命令 390


最后,这里为大家准备了几百本的互联网电子书,有需要的过来取吧。点击获取

本页书籍均来自网络,如有侵权,请联系我立即删除。我的邮箱:yaojianguolq@163.com

------ 全文结束------