GIT學習(一)_GIT簡介

一、GIT發展介紹

這裏寫圖片描述
GIT是一個版本控制系統。GIT的作者是Linux之父Linus的第二個作品,是爲了解決軟件開發過程中,版本控制問題而誕生的。

版本控制(Revision control)

版本控制通過文檔控制記錄程序各個模組的修改情況,爲每次改動設置唯一ID標識。這種方法是工程圖(enginnering drawings)維護的標準做法。它伴隨工程圖的誕生一直到定型。一種簡單的版本控制形式。例如,第一次繪製的工程圖版本信息爲“A”,第二次又改動後的版本信息爲“B”,每次修改之後都會產生一個版本號。
如果在一個多人協作的開發之中沒有引入任何版本控制,只是靠人爲的進行控制,那麼最大的問題是代碼衝突。比如,出現大量代碼覆蓋。對於這樣的版本控制工具,最早的是CVS,開源免費,效率不高。

CVS(Concurrent Version System)

CVS版本控制系統是一種GNU軟件包,主要用於多人開發環境中的代碼維護。CVS用copy-modify-merge(拷貝-修改-合併)變化表支持對文件的同時訪問和修改。CVS是基於客戶端/服務器(也就是通常所說的B/S)的行爲使其可容納多個用戶同時工作。
這裏寫圖片描述

SVN(Subversion)

CVS作爲最早的開源免費的集中式版本控制系統,在發展工程中,本身的不足也是制約其發展的關鍵因素。由於CVS自身設計的問題,會造成提交文件不完整,版本庫莫名其妙損壞的情況。在CVS之後出現在大衆視線的就是修正了諸多CVS不足之後的SVN,目前使用最廣泛的集中式版本控制系統。
這裏寫圖片描述

CVS和SVN都是在Linux下發展起來的一種技術,SVN 是爲了彌補CVS的不足而誕生的技術。CVS和SVN使用都有一個前提:必須鏈接網絡後纔可以使用,如果沒有網絡,那麼就無法使用。

GIT

GIT(the stupid content tracker,傻瓜式內容跟蹤器)。是目前爲止最好用的分佈式版本控制工具,同時也是免費開源的,用於敏捷高效地處理任何或大或小的項目。分佈式相對於集中式的最大區別在於開發者可以提交到本地,每個開發者機器上都是一個完整的數據庫。

GIT的主要特點

  • 從服務器上克隆數據庫(包括代碼和版本信息)到單機上;
  • 在自己的機器上創建分支,修改代碼;
  • 在單機上自己創建的分支上提交代碼;
  • 在單機上合併分支;
  • 創建一個分支,把服務器上最新版的代碼fetch下來,然後跟自己的主分支合併;
  • 生成補丁(patch),把補丁發送給主開發者;
  • 看主開發者的反饋,如果主開發者發現兩個一般開發者之間有衝突(他們之間可以合作解決的衝突),就會要求他們先解決衝突,就通過。
  • 一般開發者之間解決衝突的方法,開發者之間可以使用pull命令解決衝突,解決完衝突之後再向主開發者提交補丁。

GIT與SVN的區別

  • Git是分佈式版本控制系統,而SVN是集中式的。分佈式與集中式的最大區別在於不需要集中式的版本庫,每個人都可以工作在通過克隆建立的本地版本庫中。換言之,每個人都具有一個完整的版本庫
  • Git版本庫的是按照元數據存儲的,而SVN則是按照文件存儲。具體而言就是,通過Git克隆的本地版本庫下的.git目錄只會存儲元數據,而SVN倉庫下的.svn目錄會包含原始文件的拷貝
  • Git的版本號的全球唯一的哦。Git使用了SHA-1(40個十六進制數字)算法保證了版本號的全球唯一,Linus指出使用SHA-1算法的目的是保證數據的完整性。理論上對其進行哈希碰撞(hash collision,不同的兩塊數據有相同的hash值)的攻擊可以在2^51(2的51次方)左右的次數內實現。也就是兩個版本號衝突的機率是1/2^51

GIT的分支管理

在不同的分支上可以進行同一項目的修改,並且利用合併分支快速的提交項目。
這裏寫圖片描述

二、安裝GIT

取得GIT,下載地址:https://git-scm.com,下載安裝根據自己的電腦系統選擇合適的版本,根據提示完成安裝,安裝完成之後打開cmd窗口,進行測試,輸入git,如圖所示代表成功。
這裏寫圖片描述
安裝完成之後就可以使用了。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章