版本控制工具有很多,比如SVN、Git、CVS、Perforce等,介紹自己用過的一個(gè)即可。
版本控制
簡單地說,就是將在本地開發(fā)的代碼,定時(shí)推送到服務(wù)器。每一次修改,記錄下它的作者、時(shí)間及修改說明等。
相對的,我們也可以從服務(wù)器下拉其他人推送的代碼,并了解它的作者、時(shí)間、修改說明及其具體的修改內(nèi)容。
這樣,版本控制給團(tuán)隊(duì)協(xié)作開發(fā)提供了極大的方便。即使是一個(gè)人開發(fā),因?yàn)樗涗浵铝宋覀冋麄€(gè)的開發(fā)歷史,也是極有幫助和價(jià)值的。
比如,如果某次修改甚至整個(gè)系統(tǒng)出現(xiàn)問題,它也能幫助找回我們之前的代碼。
分布式版本控制
更進(jìn)一步,分布式版本控制工具使得我們在本機(jī)上即擁有完整的功能,不依賴于服務(wù)器,使用更為方便。它們往往也提供其它更好用或更強(qiáng)大的功能,比如靈活的分支管理。
這邊主要介紹Git
Git 是一個(gè)快速、可擴(kuò)展的分布式版本控制系統(tǒng),它具有極為豐富的命令集,對內(nèi)部系統(tǒng)提供了高級操作和完全訪問。
-
Git 工作流程
每個(gè)公司對于Git的管理方式存在稍許差異,但大體流程都差不多。此處簡單說一下
-
第一種 master + 各版本分支
master為主枝代碼,由專人管理。在項(xiàng)目開始階段由master分支出新版本分支x.x.x,大家都在此分支提交,然后在發(fā)布時(shí)候?qū).x.x分支代碼merge回master,并打版本tag
-
第二種 master + release + 個(gè)人分支
master為主枝代碼,由專人管理。在項(xiàng)目開始階段由master分支出新版本分支release,各人再從release拉出自己的各人分支,各人只許推送更新到自己的分支,或通過merge request拉去合并代碼到release分支,不允許推送到別人的分支或者 master,然后在發(fā)布時(shí)候?qū)elease分支代碼merge回master,并打版本tag
實(shí)際情況可能會(huì)更加繁瑣一些。