鍍金池/ 問答/Linux/ Git和SVN的區(qū)別是什么?

Git和SVN的區(qū)別是什么?

svn是有一個(gè)服務(wù)器可以u(píng)pdate和commit,git一般都是用github來pull和push,相當(dāng)于也有一個(gè)中央服務(wù)器。
都說svn是集中式版本控制系統(tǒng),git是分布式,具體使用起來感覺差別不是很大,我想問下這兩者的具體區(qū)別是什么呢?

回答
編輯回答
殘淚

git快:git保存的就是文件快照,直接簽出文件即可。而svn保存增量,簽出時(shí)要從增量里復(fù)原文件。
svn無網(wǎng)絡(luò)時(shí)就沒法用了。而git無網(wǎng)絡(luò)時(shí)只是不能和別的機(jī)器上的倉庫交互而已。
說git有中央服務(wù)器的,那其實(shí)是管理上視為中央服務(wù)器,其實(shí)那個(gè)倉庫和你個(gè)人電腦上的倉庫的地位在技術(shù)上是平等的,只是管理因素設(shè)置的不平等而已。
在git下,你可以將任何別人的倉庫設(shè)置為遠(yuǎn)程倉庫,和“中央服務(wù)器”沒有區(qū)別,只是origin等名稱上差異,origin只是默認(rèn)第一個(gè)遠(yuǎn)程服務(wù)器的名字。而svn下各client是不可能通過這樣的途徑交互的,只能通過別的途徑互傳補(bǔ)丁。
分支,git引以為豪的分支功能。git上分支極快,也是因?yàn)間it保存的是文件快照和文件指針樣的東西。而svn的分支又是從增量里復(fù)原。

2017年3月21日 14:17
編輯回答
孤慣

SVN: 集中式的版本控制,必須依賴中央服務(wù)器才能實(shí)現(xiàn) 提交,更新 操作

 一旦斷網(wǎng),所有機(jī)器都不能提交 更新代碼

GIT:分布式版本控制,每一臺(tái)機(jī)器都能當(dāng)做一個(gè)中央服務(wù)器,即使斷網(wǎng)也能提交,更新,沒有網(wǎng)絡(luò)不能遠(yuǎn)程更新代碼而已

但不影響正常工作

區(qū)別: GIT有本地版本庫(個(gè)人更新 提交),遠(yuǎn)程版本庫(多人協(xié)作更新代碼用途) 概念

  
   SVN 僅僅只有遠(yuǎn)程版本庫(一旦斷網(wǎng),多人不能協(xié)作)概念.    
2017年11月28日 14:23
編輯回答
北城荒

最大區(qū)別:使用人數(shù)

GIT跟SVN一樣有自己的集中式版本庫或服務(wù)器。但,GIT更傾向于被使用于分布式模式,也就是每個(gè)開發(fā)人員從中心版本庫/服務(wù)器上chect out代碼后會(huì)在自己的機(jī)器上克隆一個(gè)自己的版本庫??梢赃@樣說,如果你被困在一個(gè)不能連接網(wǎng)絡(luò)的地方時(shí),就像在飛機(jī)上,地下室,電梯里等,你仍然能夠提交文件,查看歷史版本記錄,創(chuàng)建項(xiàng)目分支,等。對(duì)一些人來說,這好像沒多大用處,但當(dāng)你突然遇到?jīng)]有網(wǎng)絡(luò)的環(huán)境時(shí),這個(gè)將解決你的大麻煩。

同樣,這種分布式的操作模式對(duì)于開源軟件社區(qū)的開發(fā)來說也是個(gè)巨大的恩賜,你不必再像以前那樣做出補(bǔ)丁包,通過email方式發(fā)送出去,你只需要?jiǎng)?chuàng)建一個(gè)分支,向項(xiàng)目團(tuán)隊(duì)發(fā)送一個(gè)推請(qǐng)求。這能讓你的代碼保持最新,而且不會(huì)在傳輸過程中丟失。GitHub.com就是一個(gè)這樣的優(yōu)秀案例。

2017年1月23日 08:18