|NO.Z.00002|——————————|DevelopMent|——|Git&Git和SVN簡介|
阿新 • • 發佈:2022-03-27
[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)