g4e基礎篇 2 Git分布式版本控制系統的優勢

2021-09-25 15:23:33 字數 2875 閱讀 5117

g4e 是 git for enterprise developer的簡寫,這個系列文章會統一使用g4e作為標識,便於大家檢視和搜尋。

章節目錄前言1. 基礎篇:git是當前最棒的版本控制系統,已經迅速成為了事實的業界標準,以下是stackoverflow**在過去幾年中針對版本控制系統使用情況的統計,你可以明顯看出git所佔的絕對領導位置。

具體資料請參考:

• • 

git和其他版本管理系統最大的區別在於它是一種分布式的版本管理系統(dvcs),這主要是針對類似svn, tfvc或者clearcase這種集中式版本管理系統(cvcs)而言的。簡單來說,每個git儲存庫都是乙份完整的**,歷史記錄以及分支的集合,而cvcs系統只在伺服器上儲存所有這些資訊,而在本地一般只有當前版本和至多乙個歷史版本。這種能力賦予了開發人員非常靈活的工作方式,因為分支/查詢歷史/比較/合併等操作都不需要通過伺服器進行,就可以更為輕鬆的離線工作或者遠端工作;同時在連線到網路的時候又可以和其他人共享**。

git 的靈活性和使用者接受度使之成為任何團隊的首選。 現在,許多開發者和大學畢業生都已知道如何使用 git。git 的使用者社群中已有許多資源可用來培訓開發者,同時 git 的使用者接受度使得使用者可以在需要時輕鬆獲得幫助。 幾乎所有的開發工具和技術棧都支援 git,git 命令列工具可以在所有主要作業系統上執行。對於企業來說,如果不使用git會讓那些新入職的開發者感到非常不適應,並且大幅度降低他們的開發效率,我曾將見到過開發者因為應聘企業使用老舊的開發工具而拒絕接受企業的offer。

每當通過git儲存修改時,git 會建立乙個提交 (commit)。 提交就是在某乙個時間點所有檔案改動的快照。 如果在下乙個提交中檔案沒有變化,git 會使用之前儲存的檔案。 每乙個提交都針對前乙個提交儲存乙個鏈結,這種鏈結關係形成了乙個開發歷史的資料鏈路。

這種鏈結關係讓我們可以將**還原為以前的提交、檢查兩個提交的檔案變化,並能檢視何時在**進行了更改等資訊。 每個提交在 git 中都有乙個唯一的標識 (commit id),這個id是通過對提交的內容執行加密雜湊演算法得出的。 由於一切都已經過雜湊處理,因此 git 一定可以檢測到更改、資訊丟失或檔案損壞。

git分支與傳統版本管理系統不同,並不會在檔案系統中建立重複的檔案,而是通過修改當前檔案所指向的具體版本(commit id)來實現的,所以你不必切換資料夾就可以所以切換到任何分支上工作。

git 中的檔案有以下三種狀態:已修改(modified)、已暫存(staged)或已提交(committed)。 首次修改檔案時,更改只存在於工作目錄中。 這些更改還不屬於提交或開發歷史記錄。 必須暫存(stage)要包含在提交中的已更改檔案(可以省略其中某些檔案)才能將改動提交到git。 暫存區域包含下乙個提交將包含的所有更改。 對暫存檔案感到滿意後,你就可以提交(commit)這些檔案,並為提交新增描述資訊。 這個提交就成為開發歷史記錄的一部分了。

每個人都有自己的**本地副本,可以同時在自己的分支上工作。 你也可以離線使用 git,因為幾乎所有操作都是在本地執行。

借助分支,可以靈活地進行同步開發。 主分支(master)作為發布版本的穩定**。 功能分支(feature branch)包含正在進行的工作,完成後將合併到主分支中。 通過將主分支與正在進行的開發分隔開來,可以更好地管理穩定**,並更為高效安全的發布**。

因為 git 使用者接受度非常高,它已被整合到大多數工具和產品中。 所有主流的 ide 都內建有 git 支援,還有很多任務具提供了與 git 整合的持續整合、持續部署、自動測試、工作項跟蹤、指標和報表功能。 這種整合簡化了日常工作流,降低了企業開發中工具二次開發,整合和定製的需求。

git 作為開放源**管理系統,已經成為版本控制系統的業界標準,為團隊提供所需的一切工具和資源。 相比其他版本控制系統,git 的社群支援非常強大,你可以在需要時輕鬆獲得幫助。

將 git 與其他工具配合使用,可以鼓勵團隊協作、同時確保策略的實行、實現自動化,並能提高工作的可見性和可跟蹤性,從而提高團隊的工作效率。 你可以單獨選擇不同的版本控制系統、工作項跟蹤系統以及持續整合和部署工具。 也可以選擇 visual studio team services / team foundation server 作為端到端的管理工具,團隊具備非常高的自主性和靈活性。

使用拉取請求可以確保**檢視過程的有效,然後再將它們合併到主分支中。 在拉取請求中進行的討論非常有價值,可確保**質量並促進團隊成員相互學習和協作。 visual studio team services / team foundation server  提供了非常棒的拉取請求體驗,你可以瀏覽檔案更改、發表意見、檢查提交、檢視生成,並能通過社交化投票來批准**合併。

分支策略是 visual studio team services / team foundation server中提供一項有效保持主分支(master)**質量的策略機制,讓團隊可以通過配置靈活的策略實現對主分支的保護,比如:不允許直接向主分支提交**,必須經過**檢視才能合併,必須經過特定人員批准才能合併,必須解決所有**檢視意見才能合併等一系列非常有效的保護手段;同時也允許你自己定製更加複雜的策略規則來適配團隊的不同訴求。

到這裡,我們對git的基本工作原理和它的優勢具備了一些了解。下一章中我們將開始搭建git操作環境。

2 Git分布式版本控制器的安裝

git分布式版本控制器的安裝 git源於linux,是linux第二個偉大的作品,現在已經部署在所有主流的平台上,包括我們常用的linux mac os x windows,要學習git,必定先要安裝git,下面我們一起來安裝一下。1 在linux中安裝git 在linux中安裝git是非常方便的,...

學習Git(分布式版本控制系統) 基礎篇

git config global user.name your name git config global user.email email example.com 注意git config命令的 global引數,用了這個引數,表示你這台機器上所有的git倉庫都會使用這個配置,當然也可以對某個...

Git 基礎(分布式版本控制系統)

2 近乎所有操作都是本地執行 3 git 保證完整性 4 git 一般只新增資料 3 提交更新,在終端鍵入 git commit m removed file that shouldn t be tracked 4 在 gitignore 檔案中加入如下幾行,或者在 github desktop 中...