《Git高手之路》是2019年8月人民郵電出版社出版的圖書,作者是[波蘭]雅各布·納熱布斯基(Jakub Narbski )。
基本介紹
- 中文名:Git高手之路
- 作者:[波蘭]雅各布·納熱布斯基(Jakub Narbski )
- ISBN:9787115478504
- 頁數:355頁
- 定價:89元
- 出版社:人民郵電出版社
- 出版時間:2019年8月
- 裝幀:平裝
- 開本:16開
內容簡介,圖書目錄,
內容簡介
Git是一 款免費、開源的分散式版本控制系統,可以對或大或小的項目進行高效的版本管理。時 * 今 日,Git已經在項目開發領域發揮著重要作用,並且得到了廣泛的套用。
本書旨在幫助讀者深入理解Git架構,以及其內部的理念、行為和* 佳實踐。全書共分為12章,從基礎知識講起,陸續介紹了項目歷史管理、使用Git進行程式開發、工作區管理、Git協作開發、分支套用進階、集成變更、歷史記錄管理、子項目管理、Git的定製和擴展、Git日常管理、Git* 佳實踐等內容。
本書面向所有的Git用戶,全面細緻地向讀者介紹有關Git的各項實用技巧,充分發掘它的潛力,更好地實現項目版本管理。
圖書目錄
* 1章 Git套用入門 1
1.1 版本控制與Git 1
1.2 Git簡易示例 2
1.2.1 創建版本庫 2
1.2.2 創建Git版本庫 3
1.2.3 克隆版本庫並添加注釋 4
1.2.4 發布修改 7
1.2.5 查看歷史版本 7
1.2.6 重命名、移動檔案 10
1.2.7 更新版本庫(合併) 11
1.2.8 創建標籤 12
1.2.9 解決合併衝突 14
1.2.10 添加和移除檔案 17
1.2.11 撤銷對單個檔案的修改 18
1.2.12 創建新分支 19
1.2.13 合併分支(無衝突) 20
1.2.14 撤銷未發布的合併 21
1.3 小結 22
* 2章 項目歷史管理 23
2.1 有向無環圖 23
2.1.1 提交整個工作 25
2.1.2 分支和標籤 26
2.1.3 分支點 28
2.1.4 合併提交 28
2.2 修訂內部查詢 28
2.2.1 HEAD—* 新的修訂版本 29
2.2.2 分支和標籤的引用 29
2.2.3 SHA-1哈希碼及其簡化標識符 30
2.2.4 父引用 32
2.2.5 反向父引用—git的輸出信息描述 32
2.2.6 reflog的簡稱 33
2.2.7 上游遠程跟蹤分支 34
2.2.8 根據提交信息查詢修訂 34
2.3 修訂區間查詢 35
2.3.1 單個修訂內部查詢 35
2.3.2 雙點符號 35
2.3.3 多點符號—包含和排除修訂 37
2.3.4 單個修訂的修訂區間 38
2.3.5 三點符號 38
2.4 歷史記錄查詢 40
2.4.1 限制修訂數量 40
2.4.2 元數據查詢 40
2.4.3 修訂內部變更查詢 43
2.4.4 變更類型查詢 44
2.5 單個檔案歷史記錄 44
2.5.1 路徑約束 45
2.5.2 歷史簡化 46
2.5.3 blame—查看檔案歷史記錄詳情 46
2.6 使用git bisect命令查找bug 48
2.7 日誌的查詢和格式化輸出 50
2.7.1 預定義和用戶自定義輸出格式 51
2.7.2 包含、格式化和統計變更 52
2.7.3 貢獻統計 54
2.7.4 查看檔案修訂 55
2.8 小結 56
第3章 使用Git進行程式開發 58
3.1 新建提交 58
3.1.1 新建提交的DAG視圖 59
3.1.2 索引—提交的暫存區 60
3.1.3 查看已提交的變更 61
3.1.4 可查詢的提交 71
3.1.5 修改提交 73
3.2 使用分支 75
3.2.1 新建分支 76
3.2.2 孤兒分支 77
3.2.3 分支的查詢和切換 77
3.2.4 分支列表 80
3.2.5 分支的回退和復位 80
3.2.6 分支的刪除 82
3.2.7 分支的重命名 83
3.3 小結 83
第4章 工作區管理 84
4.1 忽略檔案 85
4.1.1 將檔案刻意標記為不跟蹤的 86
4.1.2 確定忽略檔案類型 88
4.1.3 忽略檔案列表 89
4.1.4 忽略跟蹤檔案內的變更 90
4.2 檔案屬性 91
4.2.1 配置Diff和merge 94
4.2.2 檔案轉換(內容過濾) 97
4.2.3 關鍵字替換表達式 99
4.2.4 其他內置屬性 101
4.2.5 屬性宏定義 101
4.3 使用reset命令修復錯誤 102
4.3.1 回退分支head 102
4.3.2 重置分支head和索引 103
4.3.3 丟棄變更和回退分支 105
4.3.4 安全模式重置—保留用戶變更 106
4.4 隱藏暫存變更 108
4.4.1 使用git stash 108
4.4.2 隱藏和暫存區 109
4.4.3 暫存探幽 110
4.5 管理工作區和暫存區 112
4.5.1 查看檔案和 113
4.5.2 搜尋檔案內容 114
4.5.3 撤銷對檔案的跟蹤、暫存和修改 115
4.5.4 檔案版本回退 116
4.5.5 清理工作區 117
4.6 多工作 118
4.7 小結 119
第5章 Git協作開發 120
5.1 協作工作流 120
5.1.1 空版本庫 121
5.1.2 和其他版本庫互動 122
5.1.3 中心式工作流 122
5.1.4 對等網路或者分支工作流 123
5.1.5 維護者和集成管理工作流 124
5.1.6 層級式(主從式)工作流 125
5.2 遠程版本庫管理 126
5.2.1 原生的遠程版本庫 127
5.2.2 瀏覽遠程版本庫 127
5.2.3 新建遠程版本庫 128
5.2.4 遠程版本庫信息更新 129
5.2.5 兼容不規則工作流 131
5.3 傳輸協定 132
5.3.1 本地傳輸 132
5.3.2 智慧型傳輸 134
5.3.3 使用bundle進行離線傳輸 136
5.3.4 遠程版本庫傳輸助手 142
5.3.5 憑據/密碼管理 145
5.4 發布變更到上游 148
5.4.1 推送變更到公共版本庫 148
5.4.2 生成pull請求 149
5.4.3 交換補丁 149
5.5 信任鏈 151
5.5.1 內容地址存儲 152
5.5.2 輕量級標籤、附註標籤和簽名標籤 152
5.5.3 簽名提交 154
5.5.4 合併簽名標籤(合併標籤) 155
5.6 小結 157
第6章 分支套用進階 158
6.1 分支的類型和用途 158
6.1.1 長期或者永 久性分支 159
6.1.2 短期分支 164
6.2 分支工作流和發布工程 165
6.2.1 預覽或者主幹分支工作流 165
6.2.2 節點或者漸進穩定性分支工作流 166
6.2.3 主題分支工作流 168
6.2.4 Git流—一種成功的Git分支模型 172
6.2.5 修復安全問題 173
6.3 遠程版本庫上分支間的互動 175
6.3.1 上游和下游 175
6.3.2 遠程跟蹤分支和refspec 176
6.3.3 fetch、pull和push 177
6.3.4 拉取、推送分支和標籤 179
6.3.5 推送模式套用 181
6.4 小結 185
第7章 集成變更 186
7.1 集成變更的方法 186
7.1.1 合併分支 187
7.1.2 拷貝和套用變更集 191
7.1.3 分支變基 194
7.2 解決合併衝突 197
7.2.1 三路合併 198
7.2.2 檢測失敗的合併操作 199
7.2.3 避免合併衝突 203
7.2.4 處理合併衝突 205
7.3 小結 207
第8章 歷史記錄管理 209
8.1 Git內部機制簡介 210
8.1.1 Git對象 210
8.1.2 Git的底層命令和高層命令 213
8.1.3 Git環境變數 213
8.2 重寫修訂歷史 216
8.2.1 編輯* 後一次提交 217
8.2.2 互動式變基 218
8.2.3 外部工具—補丁管理接口 224
8.2.4 使用git filter-branch進行腳本化重寫 225
8.2.5 用於重寫大型項目歷史記錄的外部工具 231
8.2.6 重寫已發布歷史的風險 232
8.3 歷史記錄的非重寫式編輯 236
8.3.1 還原提交 236
8.3.2 使用筆記存儲附加信息 242
8.3.3 置換機制套用 249
8.4 小結 253
第9章 子項目管理—構建活動框架 254
9.1 管理庫和框架的依賴 255
9.1.1 Git外部依賴管理 256
9.1.2 手工導入項目代碼 257
9.1.3 包含子項目代碼的Git子樹 258
9.1.4 子模組解決方案—版本庫嵌套 267
9.1.5 將子資料夾遷移到子樹或者子模組中 279
9.1.6 子樹和子模組 280
9.2 大型Git版本庫管理 283
9.2.1 處理包含大量歷史記錄的版本庫 283
9.2.2 處理包含大量二進制檔案的版本庫 285
9.3 小結 287
* 10章 Git的定製和擴展 288
10.1 Git與命令行 289
10.1.1 Git命令行提示符 289
10.1.2 Git命令自動補全 292
10.1.3 Git命令自動校正 293
10.1.4 命令行美化 294
10.1.5 命令行工具替代方案 294
10.2 圖形化接口 295
10.2.1 圖形化工具種類 295
10.2.2 圖形化的diff和merge工具 296
10.2.3 圖形化接口示例 298
10.3 配置Git 299
10.3.1 命令行選項和環境變數 299
10.3.2 Git配置檔案 299
10.3.3 使用gitattribute配置單個檔案 309
10.4 Git自動化鉤子 311
10.4.1 安裝Git鉤子 312
10.4.2 版本庫模板 312
10.4.3 客戶端鉤子 313
10.4.4 服務端鉤子 318
10.5 Git擴展 319
10.5.1 Git命令行別名 319
10.5.2 添加新的Git命令 321
10.5.3 憑據助手和遠程版本庫助手 322
10.6 小結 322
* 11章 Git日常管理 323
11.1 版本庫維護 324
11.2 數據恢復和故障診斷 325
11.2.1 恢復已丟棄的提交記錄 325
11.2.2 Git故障診斷 327
11.3 Git服務端配置 328
11.3.1 服務端鉤子 328
11.3.2 使用鉤子實現Git強制策略 332
11.3.3 簽名推送 334
11.3.4 Git版本庫服務 335
11.3.5 Git版本庫管理工具 339
11.3.6 版本庫託管套用技巧 340
11.4 改進開發工作流 342
11.5 小結 342
* 12章 Git* 佳實踐 343
12.1 啟動項目 343
12.1.1 將工作分配到版本庫 344
12.1.2 選擇協作工作流 344
12.1.3 選擇需要實行版本控制的檔案 344
12.2 推進項目 345
12.2.1 使用主題分支 345
12.2.2 確定工作背景 346
12.2.3 將變更分解成獨立的邏輯單元 347
12.2.4 編寫簡潔易讀的注釋 347
12.2.5 為提交變更做好準備 349
12.3 集成變更 349
12.3.1 提交和描述變更 349
12.3.2 審核變更的藝術 351
12.3.3 處理審核結果和評論 353
12.4 其他注意事項 353
12.4.1 不用慌,一切幾乎都是可以恢復的 354
12.4.2 不要修改已發布的歷史記錄 354
12.4.3 版本發布的數位化和
標籤化 354
12.4.4 儘可能自動化 355
12.5 小結 355