Git(一) —— git工具

1. git

GIT(分佈式版本控制系統):一個開源的分佈式版本,可以有效、高速地處理從很小到非常大的項目版本管理。
GIT 是 Linus Torvalds 爲了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。
Torvalds 開始着手開發 Git 是爲了作爲一種過渡方案來替代 BitKe。
Git是開源的分佈式版本控制系統中最先進的,用以高效、高速的處理項目版本管理
git開發流程:
git開發過程

2. 版本控制系統

版本控制是一種記錄一個或者若干文件內容變化,以便於之後查閱特定版本修訂情況的系統

3. 分佈式版本控制系統

分佈式版本控制系統(Distributed Version Control System,簡稱DVCS)。
在這類系統中,像git、Mercurial、Bazaar及Darcs等,客戶端並不只提取最新版本的文件快照,而是把代碼倉庫完整鏡像下來。
這樣不管任何一處協同工作用的服務器發生故障,事後都可以用任何一個鏡像出來的本地倉庫恢復,因爲每一次克隆都是對代碼倉庫的一次完成備份。

4. Git的功能特性

分佈式和集中式相比最大的區別在開發者可以提交到本地,每個開發者通過克隆(git clone)在本地機器上拷貝一個完整的git倉庫
從一般開發者的角度來看,git有如下功能:
(1) 從服務器上克隆完整的Git倉庫(包括代碼和版本信息)到單機上
(2) 在自己的機器上根據不同的開發目的,創建分支,修改代碼
(3) 在單機上自己創建的分支上提交代碼
(4) 在單機上合併分支斜體樣式
(5) 在服務器上最新版的代碼fetch下來,然後跟自己的主分支合併
(6) 生成補丁(patch),把補丁發送給主開發者
(7) 看主開發者的反饋,如果主開發者發現兩個一般開發者之間有衝突(相互合作可以決),就會要求他們先解決衝突,然後再由其中一個人提交。如果主開發者可以自己解決,或者沒有衝突,就通過
(8) 一般開發者之間解決衝突的辦法,開發者之間可以使用pull命令解決衝突,解決完衝突之後再向主開發者提交補丁
從主開發者的角度(假設主開發者不開發代碼)來看,git有如下功能:
(1) 查看郵件或者通過其他方式查看一般開發者的提交狀態
(2) 打上補丁,解決衝突(可以自己解決,也可以要求開發者之間解決之後再重新提交,如果是開源項目,還要決定哪些補丁用,哪些不用)
(3) 向公共服務器提交結果,然後通知所有開發人員

5. Git的優缺點

優點:

  • 適合分佈式開發,強調個體
  • 公共服務器壓力和數據量都不會太大
  • 速度快、靈活
  • 任意兩個開發者之間可以很容易的解決衝突
  • 離線工作
    缺點:
  • 資料少
  • 學習週期較長
  • 不符合常規思維
  • 代碼保密性差,一旦開發者把整個庫克隆下來就可以完全公開所有代碼和版本信息

6. 集中式和分佈式區別

我們常用的CVS和SVN都是集中式版本控制系統,Git是分佈式版本控制系統
(1) 集中式版本控制系統

版本庫是集中存放在中央服務器的,而幹活的時候,用的都是自己的電腦,
所以要先從中央服務器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給中央服務器。
中央服務器就好比是一個圖書館,你要改一本書,必須先從圖書館借出來,然後回到家自己改,改完了,再放回圖書館

(2) 分佈式版本控制系統

分佈式版本控制系統根本沒有“中央服務器”,每個人的電腦上都是一個完整的版本庫。
這樣,你工作的時候,就不需要聯網了,因爲版本庫就在你自己的電腦上。既然每個人電腦上都有一個完整的版本庫,那多個人如何協作呢?
比方說你在自己電腦上改了文件A,你的同事也在他的電腦上改了文件A,
這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。
和集中式版本控制系統相比,分佈式版本控制系統的安全性要高很多,因爲每個人電腦裏都有完整的版本庫,
某一個人的電腦壞掉了不要緊,隨便從其他人那裏複製一個就可以了。

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