1. 程式人生 > >一本面向入門者的Git書

一本面向入門者的Git書

圖片描述

如果你在某一團隊中從事開發工作,希望瞭解如何才能有效地使用Git,那麼這本書就是一個正確的選擇。本書既不是那種偏重於理論的大部頭,也不是一本面面俱到的參考書。我們並不打算解釋所有的Git命令(這裡可有100多條命令呢)及其全部選項(有些命令甚至有50多個選項)。相反,我們打算在這本書中教你如何在典型的專案環境中使用Git,例如,如何建立起一個Git專案、如何建立一個Git發行版等。

本書相關內容

你將在本書中看到以下內容。

入門教程:這部分會重點演示每一個重要Git命令的用法,篇幅不會超過十幾頁。

技術介紹:在這部分不足百頁的篇幅中,你將要學習如何使用Git處理一個團隊開發中的各項事務。我們將會用大量的例項為你演示那些主要Git命令的使用方式。此外我們還會為你解釋其中的基本概念,例如提交、版本庫、分支、合併、重訂等,以幫助你瞭解Git的具體工作方式。在這個過程中,你還會不時地看到一些相關的提示與技巧,你可能未必每天都會用到這些技巧,但它們有時還是會非常有用的。

工作流:這裡的工作流主要指的是你在專案中使用Git的實用場景,例如建立一個專案的發行版等。而對於每個工作流,我們會從以下幾項內來描述其目標場景。

  • 解決的是什麼問題。
  • 需要增加什麼必要條件。
  • 解決問題的人以及解決的時間。

“解決方案選用理由”部分:每個工作流中通常都只能有一個具體的解決方案。在Git中,經常會存在著多個非常不同的解決路徑,這些路徑都可以讓我們達成相同的目標。在每一個工作流章節的最後一部分中,我們都會詳細解釋為什麼要選用眼下這個解決方案。另外。我們還會提一下相關的可變因素,以及我們因此可能採取的替代方案。

“分步”指令:這是一組常用命令序列,例如像移動某個分支就屬於一條既定的“分步”指令。

為什麼要用Git

  • Git允許我們利用分支來開展工作:在一個由多個開發者並行協作的專案中,開發者各自會有很多不同的開發路線。Git的優勢在於,它提供了一整套針對開發鏈的重新整合工具,以便我們對其進行合併、變基和撿取等操作。

  • 工作流上的靈活性:Git非常靈活。不但單一開發者可以用它,敏捷團隊也可以找到使用它工作的合適方法,甚至一個由眾多開發者在不同的工作地點參與的大型國際專案也可以用它開發出一個很好的工作流。

  • 適合奉獻合作:大多數開源專案所依靠的都是開發者的無私奉獻。因此,讓這種無私奉獻的方式儘可能地簡單化是一件非常重要的事。而這在一個集中式的版本控制系統中通常是很難做到的,因為我們不可能讓所有人都有許可權去寫版本庫。但如果我們使用Git,那麼每個人都先可以克隆一個獨立的工作版本庫,然後再對其進行後續的改動。

  • 高效能:Git在處理擁有許多檔案且歷史悠久的專案時速度也依然是非常快的。例如,使用Git將Linux核心原始碼的當前版本切換到6年前的舊版本時,在一臺MacBook Air上所需的時間不到1分鐘。考慮這兩個版本之間有著超過200000次的提交和40000個更改檔案,這已經足以讓人印象深刻了。

  • 強大的抗故障和抗攻擊能力:由於專案歷史被分散儲存在多個分散式版本庫中,因此資料嚴重流失的可能性不大。再加上版本庫中有著巧妙簡單的資料結構,這確保了其中的資料即使在遙遠的未來也仍然會被正確地解釋。而且,它還使用了統一的加密校驗,這使得攻擊者難以對版本庫進行篡改。

  • 離線開發與多點開發:分散式的體系結構可以使得離線開發或者邊旅行邊開發的方式變得非常容易。而且該結構在多點開發模式下,我們既不需要設定中央伺服器,也不需要固定的網路連線。

  • 強大的開源社群:除官方提供的詳細文件外,你還可以在該社群找到無數相關的手冊、論壇、維基網站等,另外還有各種工具生態系統、託管平臺、出版物、服務以及針對各個開發環境的外掛,整個社群都正在茁壯成長。

  • 可擴充套件性:Git為使用者提供了許多實用命令,其中包括了能使我們更便於直接訪問其遠端版本庫的命令。這可以讓Git變得非常靈活,這種靈活性將允許其各種獨立應用提供比預設的Git版本更為強大的功能。

圖片描述