日常啰嗦

還好在第一篇文章里就列好了接下來的主線及要寫的知識(shí)點(diǎn),不然都不知道要寫什么東西了,開篇里已經(jīng)列了基礎(chǔ)篇要講svn和git的知識(shí)點(diǎn),所以這一篇就寫一下版本控制。

項(xiàng)目實(shí)際效果展示在這里,賬密:admin 123456
下載地址,點(diǎn)這里
github地址,在這里

版本控制的定義

維基百科的解釋:版本控制(Revision control)是維護(hù)工程藍(lán)圖的標(biāo)準(zhǔn)作法,能追蹤工程藍(lán)圖從誕生一直到定案的過程。此外,版本控制也是一種軟體工程技巧,借此能在軟體開發(fā)的過程中,確保由不同人所編輯的同一程式檔案都得到同步。

由這個(gè)概念中我們得出兩個(gè)版本控制的關(guān)鍵點(diǎn),一個(gè)是記錄,一個(gè)是同步。

 

為什么要用版本控制?

    沒有版本控制系統(tǒng)的話,代碼可能被別人或自己不小心覆蓋或遺失、也不知道是誰(shuí)因?yàn)槭裁丛蚋牧诉@段代碼、也沒辦法可以復(fù)原回前幾天的修改。有了版本控制系統(tǒng),開發(fā)人員只要將每次開發(fā)的變更都紀(jì)錄(Commit)起來,并且透過版本控制系統(tǒng)中進(jìn)行更新。

    每個(gè)人都在修改、添加、刪除著自己本地硬盤上的代碼,當(dāng)他們把這些代碼匯總起來時(shí),麻煩出現(xiàn)了,總不能每次都去copy代碼然后把文件傳給其他人。還有,到底誰(shuí)改了哪些文件,具體是文件里的哪部分被改動(dòng)過?一個(gè)人的修改會(huì)不會(huì)把另外一個(gè)人的修改給覆蓋掉?上線前,代碼匯總的工作變得非常危險(xiǎn),需要非常小心,一旦出錯(cuò)后果不堪設(shè)想,而且這種情況下,大家的工作不僅僅是開發(fā),無(wú)形中,給所有人增加了很多工作量,效率將會(huì)變低,如果某個(gè)地方出錯(cuò),可能代碼匯總的工作又要重來一遍。這只是兩三人的小團(tuán)隊(duì),如果是幾十人幾百人的大團(tuán)隊(duì)呢?那將會(huì)是噩夢(mèng),當(dāng)然,幾百人的團(tuán)隊(duì)也不可能出現(xiàn)這種情況,我們只是做一個(gè)假設(shè)。

    如果這個(gè)團(tuán)隊(duì)采用了版本控制。我們可以瀏覽所有開發(fā)的歷史紀(jì)錄,而且作任何修改都不再害怕,因?yàn)槟憧梢暂p易的復(fù)原回之前正常的版本,版本控制工具也會(huì)在每次提交的時(shí)候主動(dòng)合并所有人的修改并解決可能發(fā)生的沖突,每個(gè)人手里一直都是匯總好的代碼。當(dāng)開發(fā)進(jìn)行到一定階段,可以直接拿去測(cè)試,不需要再有額外的工作來浪費(fèi)時(shí)間。另外,你還可以知道,程序的某個(gè)Bug是怎么出現(xiàn)的,是被哪位同事,在哪個(gè)時(shí)間點(diǎn)造成的,最重要的一點(diǎn)是,不怎么需要刻意去去可以問一下開發(fā)人員進(jìn)行到哪一步,通過版本控制,掌握?qǐng)F(tuán)隊(duì)的開發(fā)進(jìn)度,對(duì)整個(gè)開發(fā)流程有很大的幫助。版本控制工具中也有很多其他功能,我們也可以透過分支和標(biāo)簽的功能

網(wǎng)友評(píng)論