第1章Git應用入門 1
1.1版本控製與Git 1
1.2Git簡易示例 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.1HEAD-mdash;* 新的修訂版本 29
2.2.2分支和標簽的引用 29
2.2.3SHA-1哈希碼及其簡化標識符 30
2.2.4父引用 32
2.2.5反嚮父引用-mdash;git的輸齣信息描述 32
2.2.6reflog的簡稱 33
2.2.7上遊遠程跟蹤分支 34
2.2.8根據提交信息查詢修訂 34
2.3修訂區間查詢 35
2.3.1單個修訂內部查詢 35
2.3.2雙點符號 35
2.3.3多點符號-mdash;包含和排除修訂 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.3blame-mdash;查看文件曆史記錄詳情 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索引-mdash;提交的暫存區 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安全模式重置-mdash;保留用戶變更 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.4Git流-mdash;一種成功的Git分支模型 172
6.2.5修復安全問題 173
6.3遠程版本庫上分支間的交互 175
6.3.1上遊和下遊 175
6.3.2遠程跟蹤分支和refspec 176
6.3.3fetch、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.1Git內部機製簡介 210
8.1.1Git對象 210
8.1.2Git的底層命令和高層命令 213
8.1.3Git環境變量 213
8.2重寫修訂曆史 216
8.2.1編輯* 後一次提交 217
8.2.2交互式變基 218
8.2.3外部工具-mdash;補丁管理接口 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章子項目管理-mdash;構建活動框架 254
9.1管理庫和框架的依賴 255
9.1.1Git外部依賴管理 256
9.1.2手工導入項目代碼 257
9.1.3包含子項目代碼的Git子樹 258
9.1.4子模塊解決方案-mdash;版本庫嵌套 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.1Git與命令行 289
10.1.1Git命令行提示符 289
10.1.2Git命令自動補全 292
10.1.3Git命令自動校正 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.2Git配置文件 299
10.3.3使用gitattribute配置單個文件 309
10.4Git自動化鈎子 311
10.4.1安裝Git鈎子 312
10.4.2版本庫模闆 312
10.4.3客戶端鈎子 313
10.4.4服務端鈎子 318
10.5Git擴展 319
10.5.1Git命令行彆名 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.2Git故障診斷 327
11.3Git服務端配置 328
11.3.1服務端鈎子 328
11.3.2使用鈎子實現Git強製策略 332
11.3.3簽名推送 334
11.3.4Git版本庫服務 335
11.3.5Git版本庫管理工具 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
· · · · · · (
收起)