《Git學習指南》——導讀

前言
Git的背後有著一個非常精彩的成功故事。2005年4月,Linus Torvalds因不滿當時任何一個可用的開源版本控製係統,就親自著手實現了Git。
時至今日,如果我們在Google中搜索“git version control”這幾個關鍵詞,都會看到數以百萬計的返回結果。Git已經儼然成為了新型開源項目的一個標準。許多大型的開源項目都已經或正在計劃遷移到Git上來。
下麵,我們來看一下這麼多人之所以會選擇Git的原因。
Git允許我們利用分支來開展工作:在一個由多個開發者並行協作的項目中,開發者各自會有很多不同的開發路線。Git的優勢在於,它提供了一整套針對開發鏈的重新整合工具,以便我們對其進行合並、變基和撿取等操作。
工作流上的靈活性:Git非常靈活。不但單一開發者可以用它,敏捷團隊也可以找到使用它工作的合適方法,甚至一個由眾多開發者在不同的工作地點參與的大型國際項目也可以用它開發出一個很好的工作流。
適合奉獻合作:大多數開源項目所依靠的都是開發者的無私奉獻。因此,讓這種無私奉獻的方式盡可能地簡單化是一件非常重要的事。而這在一個集中式的版本控製係統中通常是很難做到的,因為我們不可能讓所有人都有權限去寫版本庫。但如果我們使用Git,那麼每個人都先可以克隆一個獨立的工作版本庫,然後再對其進行後續的改動。
高性能:Git在處理擁有許多文件且曆史悠久的項目時速度也依然是非常快的。例如,使用Git將Linux內核源碼的當前版本切換到6年前的舊版本時,在一台MacBook Air上所需的時間不到1分鍾。考慮這兩個版本之間有著超過200000次的提交和40000個更改文件,這已經足以讓人印象深刻了。
強大的抗故障和抗攻擊能力:由於項目曆史被分散存儲在多個分布式版本庫中,因此數據嚴重流失的可能性不大。再加上版本庫中有著巧妙簡單的數據結構,這確保了其中的數據即使在遙遠的未來也仍然會被正確地解釋。而且,它還使用了統一的加密校驗,這使得攻擊者難以對版本庫進行篡改。
離線開發與多點開發:分布式的體係結構可以使得離線開發或者邊旅行邊開發的方式變得非常容易。而且該結構在多點開發模式下,我們既不需要設置中央服務器,也不需要固定的網絡連接。
強大的開源社區:除官方提供的詳細文檔外,你還可以在該社區找到無數相關的手冊、論壇、維基網站等,另外還有各種工具生態係統、托管平台、出版物、服務以及針對各個開發環境的插件,整個社區都正在茁壯成長。
可擴展性:Git為用戶提供了許多實用命令,其中包括了能使我們更便於直接訪問其遠程版本庫的命令。這可以讓Git變得非常靈活,這種靈活性將允許其各種獨立應用提供比默認的Git版本更為強大的功能。
Git非常靈活。可為多種不同的角色所用,從偶爾需要版本化少量shell腳本的單一係統管理員,到Linux內核項目中的上百個開發人員,一切皆有可能。當然,這種靈活性不是沒有代價的。在開始用Git來開展工作之前,你還必須要做一組決定。例如以下幾種。
Git中固然已經是分布式版本庫。但你是真的打算隻在本地工作,還是更願意建立一個中央版本庫?
Git支持push和pull兩種數據傳輸類型,但我們需要同時使用它們嗎?如果讓你選,你會選哪一個?為什麼不是另一個?
分支與合並是Git中兩個強大的功能。但是,我們應該開多少個分支呢?是根據每個軟件功能來開?還是針對每個發行版來開?還是隻該有一個分支?
為了便於入門,下麵我們來總結一下工作流及其作用。
工作流指的是相關項目的日常操作規程。
工作流會給出具體的步驟。
工作流會顯示必要的命令和選項。
工作流非常適用於密切的團隊合作,而目前的這些現代軟件項目通常就出自這樣的合作。
一些工作流可能並不是目標問題唯一正確的解決方案,但它們是一個很好的起點,我們可以從中為自己的項目開發出高效的工作流。
我們之所以會重點介紹商業項目中敏捷開發團隊的工作,是因為我們相信目前許多專業開發者(包括作者)都處於這樣的工作環境中。當然,這裏並不包括那些具有特殊要求的大型項目,因為這些項目通常有著很誇張的工作流,而且我們相信這些也不是大多數開發者會感興趣的項目。另外,這裏也不包括那些開源項目的開發,雖然這些項目也可以用Git規劃出一個很有意思的工作流。
目錄
第1章 基本概念
1.1 分布式版本控製,有何過人之處
1.2 版本庫,分布式工作的基礎所在
1.3 分支的創建與合並很簡單
1.4 本章小結
第2章 入門
2.1 準備Git環境
2.2 第一個Git項目
2.2.1 創建版本庫
2.2.2 首次提交
2.2.3 檢查狀態
2.2.4 提交修改
2.2.5 顯示曆史
2.3 Git的協作功能
2.3.1 克隆版本庫
2.3.2 從另一版本庫中獲取修改
2.3.3 從任意版本庫中取回修改
2.3.4 創建共享版本庫
2.3.5 用push命令上載修改
2.3.6 Pull命令:取回修改
2.4 本章小結
最後更新:2017-06-06 07:38:17