Git && Github 使用基础及提高视频

简介

Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括 Rubinius和Merb在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。

《Git权威指南》

目录       · · · · · ·

前 言
       第1篇 初识Git
       第1章 版本控制的前世和今生/ 2
       1.1 黑暗的史前时代/ 2
       1.2 CVS—开启版本控制大爆发/ 5
       1.3 SVN—集中式版本控制集大成者/ 7
       1.4 Git—Linus 的第二个伟大作品/ 9
       第2章 爱上 Git 的理由/ 11
       2.1 每日工作备份/ 11
       2.2 异地协同工作/ 12
       2.3 现场版本控制/ 13
       2.4 避免引入辅助目录/ 15
       2.5 重写提交说明/ 15
       2.6 想吃后悔药/ 16
       2.7 更好用的提交列表/ 17
       2.8 更好的差异比较/ 18
       2.9 工作进度保存/ 18
       2.10 代理SVN提交实现移动式办公/ 19
       2.11 无处不在的分页器/ 20
       2.12 快/ 21
       第3章 Git的安装和使用/ 22
       3.1 在Linux 下安装和使用 Git/ 22
       3.1.1 包管理器方式安装/ 22
       3.1.2 从源代码进行安装/ 23
       3.1.3 从Git版本库进行安装/ 23
       3.1.4 命令补齐/ 25
       3.1.5 中文支持/ 25
       3.2 在Mac OS X 下安装和使用 Git/ 26
       3.2.1 以二进制发布包的方式安装/ 26
       3.2.2 安装 Xcode/ 27
       3.2.3 使用 Homebrew 安装 Git/ 29
       3.2.4 从Git源码进行安装/ 29
       3.2.5 命令补齐/ 30
       3.2.6 其他辅助工具的安装/ 30
       3.2.7 中文支持/ 31
       3.3 在Windows 下安装和使用 Git(Cygwin篇)/ 31
       3.3.1 安装 Cygwin/ 32
       3.3.2 安装 Git/ 36
       3.3.3 Cygwin 的配置和使用/ 37
       3.3.4 Cygwin 下 Git 的中文支持/ 40
       3.3.5 Cygwin 下 Git 访问 SSH 服务/ 41
       3.4 Windows 下安装和使用 Git(msysGit篇)/ 45
       3.4.1 安装 msysGit/ 46
       3.4.2 msysGit 的配置和使用/ 48
       3.4.3 msysGit中shell环境的中文支持/ 49
       3.4.4 msysGit中Git的中文支持/ 50
       3.4.5 使用 SSH 协议/ 51
       3.4.6 TortoiseGit 的安装和使用/ 52
       3.4.7 TortoiseGit 的中文支持/ 55
       第2篇 Git独奏
       第4章 Git 初始化/ 58
       4.1 创建版本库及第一次提交/ 58
       4.2 思考:为什么工作区根目录下有一个 .git 目录/ 60
       4.3 思考:git config 命令的各参数有何区别/ 63
       4.4 思考:是谁完成的提交/ 65
       4.5 思考:随意设置提交者姓名,是否太不安全/ 67
       4.6 思考:命令别名是干什么的/ 68
       4.7 备份本章的工作成果/ 69
       第5章 Git 暂存区/ 70
       5.1 修改不能直接提交吗/ 70
       5.2 理解 Git 暂存区(stage)/ 76
       5.3 Git Diff 魔法/ 78
       5.4 不要使用 git commit -a/ 81
       5.5 搁置问题,暂存状态/ 82
       第6章 Git对象/ 83
       6.1 Git对象库探秘/ 83
       6.2 思考:SHA1 哈希值到底是什么,是如何生成的/ 88
       6.3 思考:为什么不用顺序的数字来表示提交/ 90
       第7章 Git 重置/ 93
       7.1 分支游标master探秘/ 93
       7.2 用 reflog 挽救错误的重置/ 95
       7.3 深入了解git reset命令/ 96
       第8章 Git 检出/ 99
       8.1 HEAD 的重置即检出/ 99
       8.2 挽救分离头指针/ 102
       8.3 深入了解 git checkout 命令/ 103
       第9章 恢复进度/ 105
       9.1 继续暂存区未完成的实践/ 105
       9.2 使用 git stash/ 108
       9.3 探秘 git stash/ 109
       第10章 Git 基本操作/ 114
       10.1 先来合个影/ 114
       10.2 删除文件/ 114
       10.2.1 本地删除不是真的删除/ 115
       10.2.2 执行 git rm 命令删除文件/ 116
       10.2.3 命令git add -u快速标记删除/ 117
       10.3 恢复删除的文件/ 118
       10.4 移动文件/ 119
       10.5 一个显示版本号的 Hello World/ 120
       10.6 使用 git add -i 选择性添加/ 122
       10.7 Hello World 引发的新问题/ 124
       10.8 文件忽略/ 125
       10.9 文件归档/ 129
       第11章 历史穿梭/ 130
       11.1 图形工具:gitk/ 130
       11.2 图形工具:gitg/ 131
       11.3 图形工具:qgit/ 135
       11.4 命令行工具/ 140
       11.4.1 版本表示法:git rev-parse/ 141
       11.4.2 版本范围表示法:git rev-list/ 144
       11.4.3 浏览日志:git log/ 146
       11.4.4 差异比较:git diff/ 150
       11.4.5 文件追溯:git blame/ 151
       11.4.6 二分查找:git bisect/ 152
       11.4.7 获取历史版本/ 156
       第12章 改变历史/ 157
       12.1 悔棋/ 157
       12.2 多步悔棋/ 159
       12.3 回到未来/ 161
       12.3.1 时间旅行一/ 162
       12.3.2 时间旅行二/ 167
       12.3.3 时间旅行三/ 171
       12.4 丢弃历史/ 174
       12.5 反转提交/ 177
       第13章 Git 克隆/ 179
       13.1 鸡蛋不装在一个篮子里/ 179
       13.2 对等工作区/ 180
       13.3 克隆生成裸版本库/ 183
       13.4 创建生成裸版本库/ 184
       第14章 Git库管理/ 187
       14.1 对象和引用哪里去了/ 187
       14.2 暂存区操作引入的临时对象/ 189
       14.3 重置操作引入的对象/ 191
       14.4 Git管家:git-gc/ 193
       14.5 Git管家的自动执行/ 196
       第3篇 Git和声
       第15章 Git协议与工作协同/ 200
       15.1 Git 支持的协议/ 200
       15.2 多用户协同的本地模拟/ 202
       15.3 强制非快进式推送/ 203
       15.4 合并后推送/ 207
       15.5 禁止非快进式推送/ 208
       第16章 冲突解决/ 210
       16.1 拉回操作中的合并/ 210
       16.2 合并一:自动合并/ 212
       16.2.1 修改不同的文件/ 212
       16.2.2 修改相同文件的不同区域/ 214
       16.2.3 同时更改文件名和文件内容/ 215
       16.3 合并二:逻辑冲突/ 217
       16.4 合并三:冲突解决/ 218
       16.4.1 手工编辑完成冲突解决/ 221
       16.4.2 图形工具完成冲突解决/ 221
       16.5 合并四:树冲突/ 225
       16.5.1 手工操作解决树冲突/ 227
       16.5.2 交互式解决树冲突/ 228
       16.6 合并策略/ 230
       16.7 合并相关的设置/ 231
       第17章 Git 里程碑/ 233
       17.1 显示里程碑/ 234
       17.2 创建里程碑/ 236
       17.2.1 轻量级里程碑/ 237
       17.2.2 带说明的里程碑/ 238
       17.2.3 带签名的里程碑/ 239
       17.3 删除里程碑/ 242
       17.4 不要随意更改里程碑/ 243
       17.5 共享里程碑/ 243
       17.6 删除远程版本库的里程碑/ 246
       17.7 里程碑命名规范/ 247
       第18章 Git 分支/ 253
       18.1 代码管理之殇/ 253
       18.1.1 发布分支/ 253
       18.1.2 特性分支/ 256
       18.1.3 卖主分支/ 257
       18.2 分支命令概述/ 258
       18.3 “Hello World”开发计划/ 259
       18.4 基于特性分支的开发/ 260
       18.4.1 创建分支 user1/getopt/ 261
       18.4.2 创建分支 user2/i18n/ 262
       18.4.3 开发者 user1 完成功能开发/ 263
       18.4.4 将 user1/getopt 分支合并到主线/ 264
       18.5 基于发布分支的开发/ 265
       18.5.1 创建发布分支/ 266
       18.5.2 开发者 user1 工作在发布分支/ 267
       18.5.3 开发者 user2 工作在发布分支/ 268
       18.5.4 开发者 user2 合并推送/ 270
       18.5.5 发布分支的提交合并到主线/ 271
       18.6 分支变基/ 275
       18.6.1 完成 user2/i18n 特性分支的开发/ 275
       18.6.2 分支 user2/i18n 变基/ 277
       第19章  远程版本库/ 284
       19.1 远程分支/ 284
       19.2 分支追踪/ 287
       19.3 远程版本库/ 290
       19.4 PUSH 和 PULL 操作与远程版本库/ 292
       19.5 里程碑和远程版本库/ 294
       19.6 分支和里程碑的安全性/ 294
       第20章 补丁文件交互/ 296
       20.1 创建补丁/ 296
       20.2 应用补丁/ 297
       20.3 StGit 和 Quilt/ 300
       20.3.1 StGit/ 300
       20.3.2 Quilt/ 304
       第4篇 Git协同模型
       第21章 经典Git协同模型/ 308
       21.1 集中式协同模型/ 308
       21.1.1 传统集中式协同模型/ 309
       21.1.2 Gerrit 特殊的集中式协同模型/ 310
       21.2 金字塔式协同模型/ 311
       21.2.1 贡献者开放只读版本库/ 312
       21.2.2 以补丁方式贡献代码/ 313
       第22章 Topgit 协同模型/ 314
       22.1 作者版本控制系统的三个里程碑/ 314
       22.2 Topgit 原理/ 316
       22.3 Topgit 的安装/ 317
       22.4 Topgit 的使用/ 319
       22.5 用Topgit方式改造Topgit/ 330
       22.6 Topgit 使用中的注意事项/ 334
       第23章 子模组协同模型/ 336
       23.1 创建子模组/ 336
       23.2 克隆带子模组的版本库/ 339
       23.3 在子模组中修改和子模组的更新/ 340
       23.4 隐性子模组/ 343
       23.5 子模组的管理问题/ 345
       第24章 子树合并/ 347
       24.1 引入外部版本库/ 347
       24.2 子目录方式合并外部版本库/ 349
       24.3 利用子树合并跟踪上游改动/ 351
       24.4 子树拆分/ 353
       24.5 git-subtree 插件/ 353
       第25章 Android 式多版本库协同/ 356
       25.1 关于 repo/ 357
       25.2 安装 repo/ 357
       25.3 repo和清单库的初始化/ 359
       25.4 清单库和清单文件/ 360
       25.5 同步项目/ 361
       25.6 建立 Android 代码库本地镜像/ 363
       25.7 repo 的命令集/ 365
       25.8 repo 命令的工作流/ 370
       25.9 好东西不能 Android 独享/ 371
       25.9.1 repo+Gerrit 模式/ 371
       25.9.2 repo 无审核模式/ 371
       25.9.3 改进的 repo 无审核模式/ 372
       第26章 Git 和 SVN 协同模型/ 378
       26.1 使用 git-svn 的一般流程/ 380
       26.2 git-svn 的奥秘/ 386
       26.2.1 Git 库配置文件的扩展及分支映射/ 387
       26.2.2 Git工作分支和 Subversion 如何对应/ 388
       26.2.3 其他辅助文件/ 390
       26.3 多样的 git-svn 克隆模式/ 390
       26.4 共享 git-svn 的克隆库/ 393
       26.5 git-svn 的局限/ 394
       第5篇 搭建Git服务器
       第27章 使用 HTTP 协议/ 398
       27.1 哑传输协议/ 398
       27.2 智能 HTTP 协议/ 400
       27.3 Gitweb 服务器/ 401
       27.3.1 Gitweb的安装/ 402
       27.3.2 Gitweb的配置/ 403
       27.3.3 版本库的 Gitweb 相关设置/ 404
       27.3.4 即时Gitweb服务/ 405
       第28章 使用 Git 协议/ 406
       28.1 Git 协议语法格式/ 406
       28.2 Git 服务软件/ 406
       28.3 以 inetd 方式配置运行/ 406
       28.4 以 runit 方式配置运行/ 407
       第29章 使用 SSH 协议/ 409
       29.1 SSH 协议语法格式/ 409
       29.2 服务架设方式比较/ 409
       29.3 关于 SSH 公钥认证/ 411
       29.4 关于 SSH 主机别名/ 411
       第30章 Gitolite 服务架设/ 413
       30.1 安装Gitolite/ 414
       30.1.1 服务器端创建专用账号/ 414
       30.1.2 Gitolite 的安装/升级/ 415
       30.1.3 关于 SSH 主机别名/ 417
       30.1.4 其他的安装方法/ 418
       30.2 管理 Gitolite/ 419
       30.2.1 管理员克隆 gitolite-admin 管理库/ 419
       30.2.2 增加新用户/ 420
       30.2.3 更改授权/ 422
       30.3 Gitolite 授权详解/ 423
       30.3.1 授权文件的基本语法/ 423
       30.3.2 定义用户组和版本库组/ 424
       30.3.3 版本库ACL/ 424
       30.3.4 Gitolite 授权机制/ 426
       30.4 版本库授权案例/ 427
       30.4.1 对整个版本库进行授权/ 427
       30.4.2 通配符版本库的授权/ 428
       30.4.3 用户自己的版本库空间/ 429
       30.4.4 对引用的授权:传统模式/ 430
       30.4.5 对引用的授权:扩展模式/ 430
       30.4.6 对引用的授权:禁用规则的使用/ 431
       30.4.7 用户分支/ 431
       30.4.8 对路径的写授权/ 432
       30.5 创建新版本库/ 432
       30.5.1 在配置文件中出现的版本库,即时生成/ 433
       30.5.2 通配符版本库,管理员通过推送创建/ 434
       30.5.3 直接在服务器端创建/ 435
       30.6 对 Gitolite 的改进/ 435
       30.7 Gitolite 功能拓展/ 436
       30.7.1 版本库镜像/ 436
       30.7.2 Gitweb 和 Git daemon 支持/ 438
       30.7.3 其他功能拓展和参考/ 439
       第31章 Gitosis 服务架设/ 441
       31.1 安装 Gitosis/ 442
       31.1.1 Gitosis 的安装/ 442
       31.1.2 服务器端创建专用账号/ 442
       31.1.3 Gitosis 服务初始化/ 443
       31.2 管理 Gitosis/ 443
       31.2.1 管理员克隆 gitolit-admin 管理库/ 443
       31.2.2 增加新用户/ 444
       31.2.3 更改授权/ 446
       31.3 Gitosis 授权详解/ 447
       31.3.1 Gitosis 默认设置/ 447
       31.3.2 管理版本库 gitosis-admin/ 447
       31.3.3 定义用户组和授权/ 448
       31.3.4 Gitweb 整合/ 449
       31.4 创建新版本库/ 449
       31.5 轻量级管理的 Git 服务/ 450
       第32章 Gerrit 代码审核服务器/ 452
       32.1 Gerrit 的实现原理/ 452
       32.2 架设 Gerrit 的服务器/ 456
       32.3 Gerrit 的配置文件/ 461
       32.4 Gerrit 的数据库访问/ 462
       32.5 立即注册为 Gerrit 管理员/ 464
       32.6 管理员访问 SSH 的管理接口/ 467
       32.7 创建新项目/ 468
       32.8 从已有的 Git 库创建项目/ 472
       32.9 定义评审工作流/ 473
       32.10 Gerrit 评审工作流实战/ 477
       32.10.1 开发者在本地版本库中工作/ 477
       32.10.2 开发者向审核服务器提交/ 478
       32.10.3 审核评审任务/ 478
       32.10.4 评审任务没有通过测试/ 480
       32.10.5 重新提交新的补丁集/ 482
       32.10.6 新修订集通过评审/ 483
       32.10.7 从远程版本库更新/ 485
       32.11 更多 Gerrit 参考/ 486
       第33章 Git 版本库托管/ 487
       33.1 Github/ 487
       33.2 Gitorious/ 489
       第6篇 迁移到Git
       第34章 CVS版本库到Git的迁移/ 492
       34.1 安装cvs2svn(含 cvs2git)/ 492
       34.1.1 Linux下cvs2svn的安装/ 492
       34.1.2 Mac OS X 下 cvs2svn 的安装/ 493
       34.2 版本库转换的准备工作/ 494
       34.2.1 版本库转换注意事项/ 494
       34.2.2 文件名乱码问题/ 494
       34.2.3 提交说明乱码问题/ 494
       34.3 版本库转换/ 496
       34.3.1 配置文件解说/ 496
       34.3.2 运行cvs2git完成转换/ 500
       34.4 迁移后的版本库检查/ 501
       第35章 更多版本控制系统的迁移/ 502
       35.1 SVN版本库到Git的迁移/ 502
       35.2 Hg 版本库到Git的迁移/ 503
       35.3 通用版本库迁移/ 505
       35.4 Git 版本库整理/ 511
       35.4.1 环境变量过滤器/ 513
       35.4.2 树过滤器/ 513
       35.4.3 暂存区过滤器/ 513
       35.4.4 父节点过滤器/ 514
       35.4.5 提交说明过滤器/ 514
       35.4.6 提交过滤器/ 515
       35.4.7 里程碑名字过滤器/ 516
       35.4.8 子目录过滤器/ 516
       第7篇 Git的其他应用
       第36章 etckeeper/ 518
       36.1 安装 etckeeper/ 518
       36.2 配置 etckeeper/ 519
       36.3 使用 etckeeper/ 519
       第37章 Gistore/ 520
       37.1 Gistore 的安装/ 520
       37.1.1 软件依赖/ 520
       37.1.2 从源码安装 Gistore/ 521
       37.1.3 用 easy_install 安装/ 521
       37.2 Gistore 的使用/ 522
       37.2.1 创建并初始化备份库/ 522
       37.2.2 Gistore 的配置文件/ 523
       37.2.3 Gistore 的备份项管理/ 524
       37.2.4 执行备份任务/ 525
       37.2.5 查看备份日志/ 525
       37.2.6 查看及恢复备份数据/ 527
       37.2.7 备份回滚及设置/ 528
       37.2.8 注册备份任务别名/ 529
       37.2.9 自动备份:crontab/ 529
       37.3 Gistore 双机备份/ 529
       第38章 补丁中的二进制文件/ 531
       38.1 Git 版本库中二进制文件变更的支持/ 531
       38.2 对非 Git 版本库中二进制文件变更的支持/ 535
       38.3 其他工具对 Git 扩展补丁文件的支持/ 536
       第39章 云存储/ 538
       39.1 现有云存储的问题/ 538
       39.2 Git 式云存储畅想/ 539
       第8篇 Git杂谈
       第40章 跨平台操作 Git/ 542
       40.1 字符集问题/ 542
       40.2 文件名大小写问题/ 543
       40.3 换行符问题/ 545
       第41章 Git 的其他特性/ 549
       41.1 属性/ 549
       41.1.1 属性定义/ 549
       41.1.2 属性文件及优先级/ 550
       41.1.3 常用属性介绍/ 552
       41.2 钩子和模板/ 557
       41.2.1 Git 钩子/ 557
       41.2.2 Git 模板/ 562
       41.3 稀疏检出和浅克隆/ 563
       41.3.1 稀疏检出/ 563
       41.3.2 浅克隆/ 566
       41.4 嫁接和替换/ 568
       41.4.1 提交嫁接/ 568
       41.4.2 提交替换/ 568
       41.5 Git 评注/ 570
       41.5.1 评注的奥秘/ 570
       41.5.2 评注相关命令/ 573
       41.5.3 评注相关配置/ 574
       第9篇 附录
       附录A  Git 命令索引/ 576
       A.1 常用的Git命令/ 576
       A.2 对象库操作相关命令/ 578
       A.3 引用操作相关命令/ 578
       A.4 版本库管理相关命令/ 579
       A.5 数据传输相关命令/ 579
       A.6 邮件相关命令/ 580
       A.7 协议相关命令/ 580
       A.8 版本库转换和交互相关命令/ 581
       A.9 合并相关的辅助命令/ 581
       A.10 杂项/ 582
       附录B Git 与 CVS 面对面/ 583
       B.1 面对面访谈录/ 583
       B.2 Git  和CVS 命令对照/ 585
       附录C Git 与 SVN 面对面/ 587
       C.1 面对面访谈录/ 587
       C.2  Git 和SVN 命令对照/ 589
       附录D Git 与 Hg 面对面/ 592
       D.1 面对面访谈录/ 592
       D.2 Git和Hg  命令对照/ 593


你可能感兴趣的:(Git && Github 使用基础及提高视频)