《Git權威指南》是2011年機械工業出版社出版的書籍,由蔣鑫編寫。
基本介紹
- 書名:Git權威指南
- 作者:蔣鑫
- ISBN:9787111349679
- 頁數:595
- 出版社:機械工業出版社
- 出版時間:2011 年6月
- 開本:16
內容簡介,媒體推薦,作者簡介,目錄,
內容簡介
《git權威指南》是git領域的集大成之作,是一本關於git的百科全書,在廣度、深度和實戰性上讓同類作品望塵莫及。作者是國內頂尖的版本控制專家和諮詢顧問之一,本書得到了git官方維護者junio c hamano和iteye創始人范凱(robbin)先生等數位專家的高度認可和極力推薦,權威性毋庸置疑。
全書一共9篇,共41章和4個附錄,內容幾乎涵蓋了git的所有方面。第1篇介紹了版本控制工具的演變歷史、git的各種優點,以及它在3種主流作業系統中的安裝與配置。第2篇和第3篇既是本書的基礎,又是本書的核心,不僅介紹了git的操作和使用,而且還講解了git的原理。第2篇詳細講解了個人用戶如何使用git,包括git初始化、日常操作、暫存區、對象、重置、檢出、恢復進度、歷史變更、克隆、庫管理等;第3篇詳細講解了git協定和團隊如何使用git,包括git支持的協定、衝突解決、里程碑、分支、遠程版本庫和補丁檔案互動等。第4篇全面介紹了git的協同模型,即它在實際工作中的使用模式,包括各種經典的git協同模型、topgit協同模型、子模組協同模型、子樹合併、android多版本庫協同、git與svn協同模型等。第5篇介紹了git伺服器的架設,首先講解了http協定、git協定、ssh協定的使用,然後講解了gitolite、gitosis、gerrit等伺服器的架設方法,最後還講解了git版本庫的託管。第6篇介紹了版本庫的遷移,包括如何從cvs、svn、hg等版本庫遷移到git,以及git版本庫整理等方面的內容。第7篇講解了git的其他套用,包括etckeeper、gistore等的安裝、配置和使用,以及補丁中的二進制檔案和雲存儲等內容。第8篇介紹了git的跨平台操作,以及它的鉤子和模板、稀疏檢出和淺克隆、嫁接和替換等重要特性。第9篇是附錄,詳細給出了git的命令索引,以及cvs、svn和hg與git的比較與命令對照,方便讀者查閱。
媒體推薦
2009年9月,我出版了一本針對日本讀者的Git專著,當Linus收到我贈送的簽名本時,他對我說:“除了截圖和命令行示例外,其他我什麼也看不懂”(Linus不懂日文)。因為同樣的原因,雖然我不能了解蔣鑫這本書的全部內容,但是我可以看出這本書涵蓋了非常廣泛的主題,並且可以看出蔣鑫對這本書的用心。我非常高興能夠看到這本書的出版,感謝向世界傳播Git。——Junio C Hamano Git維護者(2005年7月至今)
仔細拜讀了本書前三篇共20章的內容,感覺這本書極好。作者在軟體版本控制系統方面有超過10年的經驗,對版本控制系統有非常深入的認識。尤為難得的是,本書文筆很流暢,雖然是技術書籍,但是作者娓娓道來,閱讀體驗很好。Git的學習門檻較高,包括我們公司在內的很多企業都將版本控制系統轉向了Git,強烈推薦大家看一看。——范凱(Robbin) CSDN平台開發總監/ITeye創始人
這是我讀過的最好的關於Git的書。將複雜的Git解釋得清晰而透徹絕非易事,蔣鑫做到了,更讓人驚喜的是,他還分享了大量的經驗總結。我幾年來累積下來的諸多疑惑都在讀罷該書後一一得以解開。如果你正在使用,或者打算使用Git,本書當然是必備的。你也可以抱著Subversion或CVS不放,不過,如果哪一天有人拿起這本書敲你的頭時可別怪我沒提醒過你。——許曉斌(Juven Xu) 資深Maven專家/著有暢銷書《Maven實戰》
Git是當前開源社區最流行的版本控制系統,代表了版本控制的未來。每一位有志於從事軟體開發的學習者都應該學習和掌握這一工具,它不但可用於追蹤編程者的思考過程,還是打開開源軟體世界的金鑰匙,更可以通過版本控制掌握與他人協同工作的技能。本書是一本耐讀的原創著作,因為其涵蓋的內容之廣足以讓每一位程式設計師在成長的不同階段都可以從中汲取豐富營養。—— 馮鈴 清華大學計算機科學與技術系“長江學者”兼特聘教授
目前市面上關於Git的書不在少數,但迄今為止,國內外還沒有一本書能在廣度和深度上達到本書的水平,也許在今後相當長的一段時間內也不會有。如果你是一位軟體開發者,強烈建議你學習並使用Git;如果你要學習Git,本書無疑是你最佳的選擇。——徐繼哲 哲思社區創始人
作者簡介
蔣鑫,國內頂尖的版本控制專家和諮詢顧問之一,對Subversion和Git等版本控制工具有十分深入的研究,參與了Git以及Gitosis、Gitolite、Repo、Topgit、Gistore等與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