Git是一款免費萌京、開源的分布式版本控制系統(tǒng)焰轻,用于敏捷高效地處理任何或小或大的項目。
Git是一個開源的分布式版本控制系統(tǒng)聪舒,用以有效辨液、高速的處理從很小到非常大的項目版本管理。Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發(fā)而開發(fā)的一個開放源碼的版本控制軟件箱残。
特點
分布式相比于集中式的最大區(qū)別在于開發(fā)者可以提交到本地滔迈,每個開發(fā)者通過克隆(git clone),在本地機器上拷貝一個完整的Git倉庫亡鼠。
直接記錄快照,而非差異比較 : Git 更像是把變化的文件作快照后敷待,記錄在一個微型的文件系統(tǒng)中间涵。
近乎所有操作都是本地執(zhí)行 :在 Git 中的絕大多數(shù)操作都只需要訪問本地文件和資源,不用連網榜揖。
時刻保持數(shù)據(jù)完整性 :在保存到 Git 之前勾哩,所有數(shù)據(jù)都要進行內容的校驗和(checksum)計算,并將此結果作為數(shù)據(jù)的唯一標識和索引举哟。
多數(shù)操作僅添加數(shù)據(jù) :常用的 Git 操作大多僅僅是把數(shù)據(jù)添加到數(shù)據(jù)庫思劳。
開發(fā)流程示意圖:
集中版本控制
CVS及SVN都是集中式的版本控制系統(tǒng),而Git是分布式版本控制系統(tǒng)妨猩。
集中式版本控制系統(tǒng)潜叛,版本庫是集中存放在中央服務器的,一起工作的人需要用自己的電腦從服務器上同步更新或上傳自己的修改壶硅。
但是威兜,所有的版本數(shù)據(jù)都存在服務器上,用戶的本地設備就只有自己以前所同步的版本庐椒,如果不連網的話,用戶就看不到歷史版本,也無法切換版本驗證問題懊直,或在不同分支工作质和。。
而且棱诱,所有數(shù)據(jù)都保存在單一的服務器上泼橘,有很大的風險這個服務器會損壞,這樣就會丟失所有的數(shù)據(jù)军俊,當然可以定期備份侥加。
版本控制
那分布式版本控制系統(tǒng)與集中式版本控制系統(tǒng)有何不同呢?
分布式版本控制系統(tǒng)根本沒有“中央服務器”粪躬,每個人的電腦上都是一個完整的版本庫担败,不需要聯(lián)網就可以工作。既然每個人電腦上都有一個完整的版本庫镰官,那多個人如何協(xié)作呢提前?比方說你和同事在各自電腦修改相同文件,這時泳唠,你們倆之間只需把各自的修改推送給對方狈网,就可以互相看到對方的修改了。
分布式版本控制系統(tǒng)的安全性要高很多,因為每個人電腦里都有完整的版本庫拓哺。大家之間可以相互復制勇垛。
分布式版本控制系統(tǒng)通常也有一臺充當“中央服務器”的電腦,但這個服務器的作用僅僅是用來方便“交換”大家的修改士鸥,沒有它大家也一樣干活闲孤,只是交換修改不方便而已。