git 學習——git 歷史與起步

Table of Contents

版本控制

集中式管理 Centralized Version Control Systems

 分佈式版本控制系統

git  三種狀態

git 命令行

git 安裝


以下內容均來源於git 官網中文版,然後學習並記錄,希望加強理解和起到歸納總結的作用 


版本控制

 版本控制是一種記錄一個或若干文件內容變化,以便將來查閱特定版本修訂情況的系統。 軟件工程中則記錄的是代碼和相關文件,我們用版本控制記錄着相關文件的變化。試想一下,沒有版本控制是一個很可怕的事情,對於一件長期在做的事情,我們希望瞭解每個時期其面貌。

集中式管理 Centralized Version Control Systems

 首先,人們想到的是一箇中心管理點,協同人員通過客戶端連接到服務端,然後提交、更新。其缺點是需要實時保持通訊,否則
就不能記錄。中心數據庫所在的磁盤發生損壞,沒有做恰當備份,毫無疑問你將丟失所有數據——包括項目的整個變更歷史,只剩下人們在各自機器上保留的單獨快照。

集中化的版本控制圖解

 分佈式版本控制系統

於是分佈式版本控制系統(Distributed Version Control System,簡稱 DVCS)面世了。 在這類系統中,像 Git、Mercurial、Bazaar 以及 Darcs 等,客戶端並不只提取最新版本的文件快照,而是把代碼倉庫完整地鏡像下來。

 

            分佈式版本控制圖解

 分佈式git版本管理優點

  • 速度
  • 簡單的設計
  • 對非線性開發模式的強力支持(允許成千上萬個並行開發的分支)
  • 完全分佈式
  • 有能力高效管理類似 Linux 內核一樣的超大規模項目(速度和數據量)

git 的很多操作都是再本地完成,在有網的時候聯網並進行push 數據。

git  三種狀態

Git 有三種狀態,你的文件可能處於其中之一:已提交(committed)、已修改(modified)和已暫存(staged)。 已提交表示數據已經安全的保存在本地數據庫中。 已修改表示修改了文件,但還沒保存到數據庫中。 已暫存表示對一個已修改文件的當前版本做了標記,使之包含在下次提交的快照中。

由此引入 Git 項目的三個工作區域的概念:Git 倉庫、工作目錄以及暫存區域。

工作目錄、暫存區域以及 Git 倉庫。

 

Git 倉庫目錄是 Git 用來保存項目的元數據和對象數據庫的地方。 這是 Git 中最重要的部分,從其它計算機克隆倉庫時,拷貝的就是這裏的數據。

工作目錄是對項目的某個版本獨立提取出來的內容。 這些從 Git 倉庫的壓縮數據庫中提取出來的文件,放在磁盤上供你使用或修改。

暫存區域是一個文件,保存了下次將提交的文件列表信息,一般在 Git 倉庫目錄中。 有時候也被稱作“索引”,不過一般說法還是叫暫存區域。

基本的 Git 工作流程如下:

  1. 在工作目錄中修改文件。

  2. 暫存文件,將文件的快照放入暫存區域。

  3. 提交更新,找到暫存區域的文件,將快照永久性存儲到 Git 倉庫目錄。

如果 Git 目錄中保存着特定版本的文件,就屬於已提交狀態。 如果作了修改並已放入暫存區域,就屬於已暫存狀態。 如果自上次取出後,作了修改但還沒有放到暫存區域,就是已修改狀態。

git 的後續很多概念都是從這三個狀態引出的,要理解這一點,對後續的掌握很有幫助。

git 命令行

git之出是爲了解決linux 開源項目中的全球各地的開發者提交的代碼而設計的,當然也很注重命令行的,所以強烈建議之間學習命令行而不是 各種GUI ,因爲首先,只有在命令行模式下你才能執行 Git 的 所有 命令,而大多數的 GUI 軟件只實現了 Git 所有功能的一個子集以降低操作難度。 如果你學會了在命令行下如何操作,那麼你在操作 GUI 軟件時應該也不會遇到什麼困難,但是,反之則不成立。

git 安裝

git的安裝對於Linux 和Mac 系統很友好,直接可以用命令行實現,但window 則不行,支持的不是很好。可以在官網下載相關軟件,實現安裝。另外,可以通過源碼安裝,可以實時得到最新版本,但這種方式需要自己編譯,並且需要下載其他的軟件庫來實現編譯,有一定難度。

 

發佈了92 篇原創文章 · 獲贊 8 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章