好多剛用git的coder一提及git,就隨口會說出版本控制器嘛,我問那是幹嗎的,大部分人就回答上傳代碼的。而後會用,可是有些理論你問他們他們就不知道了,好比不是代碼的文件就不能用到git?因此今天寫這篇隨便就是將一些我對git的理解git
svn 服務器
git 網絡
2.1 git和svn本質區別?分佈式
git分佈式版本控制器,svn集中式版本控制器svn
2.2 集中式和分佈式的區別?spa
集中式(svn)版本控制系統,版本庫是集中存放在中央服務器的(就一個你們圍繞着這一個服務器進行工做),全部的版本數據都保存在服務器上協同開發者從服務器上同步更新或上傳修改。3d
有很大的風險這個服務器會損壞,(若是沒有備份)這樣就會丟失全部的數據。版本控制
分佈式(git)分佈式版本控制系統根本沒有「中央服務器」,每一個人的電腦上都是一個完整的版本庫,不須要聯網就能夠工做。只須要在聯網的時候push到相應的遠端repository.code
2.3 爲何git斷網後能夠工做?blog
git和svn的區別這個是老生常談了,一般就會一百度就會出現 啊 git沒有網絡也可使用,這時候一些剛接觸的人就懵逼了,沒有網絡哥咋把代碼傳上去啊,當初我也同樣。可是呢!
後來想明白了,咱們的代碼要存放在哪,倉庫repository,那git有本地的倉庫,咱們固然能夠不用聯網就能夠工做啊。只不過有網的時候咱們還能夠把本地倉庫的東西推送到遠程倉庫而已。
svn就不行了,它只連接服務器,有一個遠程倉庫,沒有網絡你怎麼把你的文件放在遠程倉庫呢。
3、git的優勢和缺點
分佈式,多人協同開發,缺點就是代碼保密性差,一旦開發者把整個庫克隆下來就能夠徹底公開全部代碼和版本信息。
4、git的工做原理
工做區,版本庫,暫存區,樹目錄,遠程倉庫
工做區: