Git 高手之路

[波蘭]雅各布·納熱布斯基

  • 出版商: 人民郵電
  • 出版日期: 2018-04-01
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • 頁數: 355
  • 裝訂: 平裝
  • ISBN: 7115478503
  • ISBN-13: 9787115478504
  • 相關分類: Version Control
  • 此書翻譯自: Mastering Git
  • 已絕版

買這商品的人也買了...

商品描述

Git是一 款免費、開源的分佈式版本控制系統,可以對或大或小的項目進行高效的版本管理。時 * 今 日,Git已經在項目開發領域發揮著重要作用,並且得到了廣泛的應用。
本書旨在幫助讀者深入理解Git架構,以及其內部的理念、行為和* 佳實踐。全書共分為12章,從基礎知識講起,陸續介紹了項目歷史管理、使用Git進行程序開發、工作區管理、Git協作開發、分支應用進階、集成變更、歷史記錄管理、子項目管理、Git的定製和擴展、Git日常管理、Git* 佳實踐等內容。
本書面向所有的Git用戶,全面細致地向讀者介紹有關Git的各項實用技巧,充分發掘它的潛力,更好地實現項目版本管理。

作者簡介

作者:[波蘭]雅各布·納熱布斯基(Jakub Nar?bski )譯者:鄧世超

Jakub Nar?bski自Git誕生之初參與了Git的開發工作。他是gitweb子系統(Git原始Web界面)的主要貢獻者之一,是非官方的gitweb維護者。他創造、發布並分析了2007年到2012年的年度Git用戶調查。您可以在Git Wiki上找到對這些調查的分析內容。他經常在技術問答網站StackOverflow上和他人分享自己的技術專長。
他是Eric Sink的Version Control by Example一書的審校者之一,這也是他在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