版本控制器的作用:
可以協同**管理,讓多人開發**得以實現。
回歸到以前的任何乙個時間點的**處(好比:開始寫了很多**,後面有修改了一些,突然ide崩潰,但是發現還是以前的**更好,這個時候無法回去,這個時候沒有後悔藥吃,但是可以使用版本備份,但是即花費空間和花費時間)。
由於上面的版本備份造成版本眾多,難於找到正確的版本(svn有專門的日誌記錄了檔案的每一次修改,可以通過檢視日誌回到任何乙個自己想要的版本)。
**衝突的問題,主要是多人操作同乙個檔案(團隊開發很常見)。
可以檢視每個人具體的操作,便於出現問題後及時排查(由於某個員工個人失誤造成很大的bug,可以方便的追究責任)。
常見的版本控制器分類
cvs(90年代開發,版本控制器的鼻祖)、svn(cvs的**人)、vss(微軟產品)、git(李納斯開發)
svnsvn:**控制器(版本控制器),主要是為了多人協同開發專案,管理**。也可以管理個人**。也叫程式界的」後悔藥「。
svn(是subversion的簡稱)是近年來一款基於c/s架構的,非常優秀的版本控制器(可以簡單的理解為管理**的工具,在多人協同開發的時候,尤其重要),與傳統的cvs(90年代左右,乙個非常優秀的**管理器,是**管理器的鼻祖)管理工具類似。
svn可以隨著時間的推移來管理各種資料,這些資料被放置在乙個svn管理的**倉庫(所有的**的集合)裡面。同時svn會備份並記錄每個檔案每一次的修改更新變動。這樣就開發者就可以回歸到任何乙個時間點的某乙個舊的版本(對於svn,沒修改一次檔案,svn就會建立乙個叫做版本的概念,是從0 開始自增的序列)。當然也可以指定檔案的更新歷史記錄(index.php)。
svn又叫做集中式版本控制器。嚴重的依賴伺服器端,當伺服器端無法使用的時候,版本控制也就無法再使用了。
svn工作流程圖
git
git是目前世界上最先進的分布式版本控制系統(沒有之一)。當這個系統的任何乙個客戶端出現問題的時候,都可以從另外的客戶端(即使伺服器掛了)獲取所有的**。
svn與git的區別:
1.git是分布式的,而svn是集中式的
2.git把內容按元資料方式儲存,而svn是按檔案:因為git目錄是處於個人機器上的乙個轉殖版的版本庫,它擁有中心版本庫上所有的東西,例如標籤,分支,版本記錄等。
3.git分支和svn的分支不同:svn會發生分支遺漏的情況,而git可以同乙個工作目錄下快速的在幾個分支間切換,很容易發現未被合併的分支,簡單而快捷的合併這些檔案。
4.git沒有乙個全域性的版本號,而svn有
5.git的內容完整性要優於svn:git的內容儲存使用的是sha-1雜湊演算法。這能確保**內容的完整性,確保在遇到磁碟故障和網路問題時降低對版本庫的破壞。
集中式和分布式的區別:
集中式版本控制系統:版本庫是集中存放在**伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從**伺服器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給**伺服器。集中式版本控制系統最大的毛病就是必須聯網才能工作。
分布式版本控制系統:分布式版本控制系統根本沒有「**伺服器」,每個人的電腦上都是乙個完整的版本庫,這樣,你工作的時候,就不需要聯網了,因為版本庫就在你自己的電腦上。比方說你在自己電腦上改了檔案a,你的同事也在他的電腦上改了檔案a,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。
為了方便「交換」大家的修改,分布式版本控制系統通常也有一台充當「**伺服器」的電腦,但沒有它大家也一樣幹活,只是交換修改不方便而已。
分布式版本控制系統的安全性要高很多,因為每個人電腦裡都有完整的版本庫,某乙個人的電腦壞掉了不要緊,隨便從其他人那裡複製乙個就可以了。而集中式版本控制系統的**伺服器要是出了問題,所有人都沒法幹活了。
Svn與Git的區別
這篇主要是談談兩者的區別,至於誰優誰劣看官自己思考吧!把第一條理解到位思想到位了做起來才會有的放矢,其他幾條都是用的時候才能體會到 1 最核心的區別git是分布式的,而svn不是分布的。能理解這點,上手會很容易,宣告一點git並不是目前唯一的分布式版本控制系統,還有比如mercurial等,所以說它...
Svn與Git的區別
1 最核心的區別git是分布式的,而svn不是分布的。能理解這點,上手會很容易,宣告一點git並不是目前唯一的分布式版本控制系統,還有比如mercurial等,所以說它們差不許多。話說回來git跟svn一樣有自己的集中式版本庫和server端,但git更傾向於分布式開發,因為每乙個開發人員的電腦上都...
Git與SVN的區別
如果你在讀這篇文章,說明你跟大多數開發者一樣對git感興趣,如果你還沒有機會來試一試git,我想現在你就要了解它了。git不僅僅是個版本控制系統,它也是個內容管理系統 cms 工作管理系統等。如果你是乙個具有使用svn背景的人,你需要做一定的思想轉換,來適應git提供的一些概念和特徵。所以,這篇文章...