git和svn的區別
爲何須要版本控制
git和svn都是程序員用來管理代碼的,若是是一我的開發一個項目,版本控制這個玩意兒根本用不上,對吧。可是呢,在企業中進行開發,一我的負責一個項目的狀況幾乎不可能,從需求評審,UI設計,前端開發,後臺開發,測試,整個過程都是須要團隊來配合的。這個時候呢,版本控制都顯得尤其重要啦。前端
區別
下面咱們來講說這git和svn究竟有什麼不一樣:git
- svn是集中式版本控制系統,git是分佈式版本控制系統。
這句話相信不知道多少人都聽過,究竟什麼是集中式什麼是分佈式?很明顯嘛,就字面意思啊,這麼來講吧,svn就是全部人修改的都是服務器上的程序,若是有人修改了一樣的部分,那就衝突了。因此呢,通常團隊會約定,對於公共部分的程序,儘可能標註出開發人員特有標識,又或者A從上添加,B從下添加。
git就是開發人員建立本身的分支,這個分支就至關於將源碼copy一份在本機上,以後修改的都是本地的代碼,可隨時拉取服務器的代碼進行同步,git可建立無數分支,開發人員只需將本身修改的代碼提交就能夠了,這樣衝突的概率會小不少。
- svn是直接與服務器進行交互,git是將項目緩存在本地再推送到服務器。
- svn必須在聯網的狀況下工做,git可不聯網開發。
- svn易衝突,git不易衝突。
- svn旨在項目管理,git旨在代碼管理。
- svn適用於多項目並行開發,git適用於單項目開發。
- svn適用於企業內部,由項目經理協調多個項目統籌開發,git適用於經過網絡多人開發同一項目。
git和github
造個句體現一下這兩個的關係程序員
mio使用git將項目提交到了github上
也就是說:git是一個工具,github是一個平臺。github
最後
我不知道之前聽誰說的,寫技術博客的意義不在於記,而在於授。這句話說的實在有道理,雖然如今寫的這些文字很不專業,看着像是外行,不過我會努力噠(๑•̀ㅂ•́)و✧緩存