版本控制是企業開發中一個老生長談的主題,這也是大部分公司新人進來後須要接納的一個基礎知識體系.服務器
從08年首次接觸商業軟件編寫後,這幾年前後接觸了SVN,TFS,Git這幾個主要的版本控制器,可是並無深刻的去研究過包含的思想,分佈式
所以下文只能簡單描述本身使用這些主流的版本控制的感覺.網站
接觸SVN時,對軟件開發仍是門外漢,大約只是圖個新鮮,當初大約有10我的在同一個Responsite下寫代碼,只不過每一個人都只作本身的頁面,互相不干涉,這樣用了版本控制
一年多的時間,我都沒有接觸過更高深的理念,惟一知道的是,改錯代碼能夠從服務器上找回來,這也是對其最初的印象.blog
進公司時,部門是用的TFS,當初有點逆反心理,以爲我會SVN了,爲何仍是要學TFS呢,因而在不是特別情願的狀況下先看了一段時間的TFS,對它重視起來是因爲本身的一個不當心,開發
從服務器Check Out時,覆蓋了本身的改的一些代碼,當時是很是沮喪啊,那幾行業務代碼先後改了1個月,吸收了教訓後,對TFS的心理排斥就沒有了.不過我我的以爲它的缺點有2個:部署
1:TFS服務端我曾嘗試本身創建一個,可是對機器環境的要求比較高,嘗試失敗後,就放棄了get
2:客戶端也挺龐大的,那時仍是用的筆記本,感受好卡同步
12年時,部門項目所有轉移到Git上開發,和初接觸TFS同樣,我也是沒有太在乎這些,同事簡單的告訴我幾個命令後,也沒有體會到主管說的分佈式開發的內在,當時的心理想法是博客
以爲大家愛折騰就去折騰,隨着項目的推動,有時會遇到多人工做同一個頁面的可能性,在沒搞懂Git時,發版本常常會出現已修復的Bug又存在下一個版本中,很是糾結啊,當時爲一個事故,被直屬主管,部門主管,公司領導
依次批評了一頓,因此說不少時候吃虧就是在一些小事情上.如今對Git的使用已經比較熟練了,也愈來愈懂它的強大之處.
它的優點在於相對TFS而言,部署比較簡單,有一段時間,我部署在本身機器上,後來發現Bitbucket這個網站後,就全轉移到上面了,我的以爲開發人員積累本身獨立的項目庫仍是應該的.
下面貼一張我目前開發Silverlight項目的圖:
第1步到第2步,是Git基本的使用,第3步到第4步,是發行版本後,須要修復Bug,第4步到第5步,是2個分支修改Bug同步.寥寥數語,若是對Git比較熟悉的話,
我想這張圖很好解釋,相比Git官方提供的流程圖,省去了一些過程.
對於它的深刻理解: 請參考 http://www.uml.org.cn/pzgl/201112163.asp
關於版本控制器,博客園裏不少人研究的很深很細,而我只是略懂皮毛,對上面3個版本控制器的評價主要仍是停留在我的感覺上,不過相比較而言,我更爲推薦的
Git了,但願沒有用過的朋友能夠感覺下強大之處.