1. 程式人生 > 其它 >|NO.Z.00002|——————————|DevelopMent|——|Git&Git和SVN簡介|

|NO.Z.00002|——————————|DevelopMent|——|Git&Git和SVN簡介|



[Development:Git&Git和SVN簡介]                                                                       [Programming.Development] [Git簡史及安裝教程/建立本地倉庫/提交專案到本地倉庫/誤刪還原]








一、Git簡史及同類產品對比:
### --- git簡史:

~~~     同生活中的許多偉大事件一樣,Git 誕生於一個極富紛爭大舉創新的年代。
~~~     Linux 核心開源專案有著為數眾廣的參與者。
~~~     絕大多數的 Linux 核心維護工作都花在了提交補丁和儲存歸檔的繁瑣事務上(1991-2002年間)。
~~~     到 2002 年,整個專案組開始啟用分散式版本控制系統 BitKeeper 來管理和維護程式碼。
~~~     到 2005 年的時候,開發 BitKeeper 的商業公司同 Linux 核心開源社群的合作關係結束,
~~~     他們收回了免費使用 BitKeeper 的權力。
~~~     這就迫使 Linux 開源社群(特別是 Linux的締造者 Linus Torvalds )不得不吸取教訓,
~~~     只有開發一套屬於自己的版本控制系統才不至於重蹈覆轍。

### --- 他們對新的系統訂了若干目標:

~~~     速度
~~~     簡單的設計
~~~     對非線性開發模式的強力支援(允許上千個並行開發的分支)
~~~     完全分散式
~~~     有能力高效管理類似 Linux 核心一樣的超大規模專案(速度和資料量)

二、git和SVN對比:

### --- git和SVN對比:

~~~     # SVN:
~~~     SVN是集中式版本控制系統,版本庫是集中放在中央伺服器的,
~~~     而幹活的時候,用的都是自己的電腦,所以首先要從中央伺服器哪裡得到最新的版本,
~~~     然後幹活,幹完後,需要把自己做完的活推送到中央伺服器。
~~~     集中式版本控制系統是必須聯網才能工作,如果在區域網還可以,頻寬夠大,速度夠快,
~~~     如果在網際網路下,如果網速慢的話,就鬱悶了。

~~~     集中管理方式在一定程度上看到其他開發人員在幹什麼,
~~~     而管理員也可以很輕鬆掌握每個人的開發許可權。

~~~     # 但是相較於其優點而言,集中式版本控制工具缺點很明顯:
~~~     伺服器單點故障
~~~     容錯性差

下圖就是標準的集中式版本控制工具管理方式:

~~~     # Git:

~~~     Git是分散式版本控制系統,那麼它就沒有中央伺服器的,
~~~     每個人的電腦就是一個完整的版本庫,這樣,工作的時候就不需要聯網了,
~~~     因為版本都是在自己的電腦上。
~~~     既然每個人的電腦都有一個完整的版本庫,那多個人如何協作呢?
~~~     比如說自己在電腦上改了檔案A,其他人也在電腦上改了檔案A,
~~~     這時,你們兩之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。

下圖就是分散式版本控制工具管理方式:

三、Git工作流程:

### --- 一般工作流程如下:

~~~     從遠端倉庫中克隆 Git 資源作為本地倉庫。
~~~     從本地倉庫中checkout程式碼然後進行程式碼修改
~~~     在提交前先將程式碼提交到暫存區。
~~~     提交修改。提交到本地倉庫。本地倉庫中儲存修改的各個歷史版本。
~~~     在修改完成後,需要和團隊成員共享程式碼時,可以將程式碼push到遠端倉庫。

下圖展示了 Git 的工作流程:









===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)