許多小伙伴們或許聽過 Git 的大名,但卻對 Git 是做什么的不甚了解。今天小編就來給大家介紹一下 Git 是什么,讓小伙伴們明白為什么要使用 Git 進(jìn)行版本控制。
首先介紹一下,什么是版本控制。版本控制指的是程序員對于其產(chǎn)出的代碼按時間先后分成一個一個的版本,每個版本之間可能有代碼的變動。通過對版本的控制,來實(shí)現(xiàn)項(xiàng)目的管理和迭代。
在最開始的時候,代碼可以不需要版本控制。但隨著代碼規(guī)模的增加,每一次對源代碼的修改都可能導(dǎo)致整體代碼的出錯,這時候?qū)Υa的修改記錄就顯得很重要。但是代碼修改多了修改記錄也會因此變得不好管理,這時候,版本控制工具出現(xiàn)了。
在這個時候版本控制工具一般采用的是中心式的架構(gòu)。以 SVN(一款著名的版本管理工具)為例,它需要一個中心服務(wù)器來進(jìn)行代碼的保存。如果服務(wù)器出現(xiàn)了什么異常(比如斷線,崩潰,請求沖突),就會影響到版本控制工具的正常使用。
在對 Linux 的維護(hù)過程中,Linus 深感吃力(需要手動合并來自 Linux 社區(qū)提交的代碼)。因?yàn)樯鲜鲈蛩麍?jiān)定地反對 CVS 和 SVN。本來 Linus 選擇了一個商業(yè)的版本控制系統(tǒng)來對 Linux 進(jìn)行版本控制,然而因?yàn)槟承┰颍ㄩ_源社區(qū)與提供系統(tǒng)的公司鬧掰了),這個版本控制系統(tǒng)的公司收回了 Linux 社區(qū)的免費(fèi)使用權(quán)。于是 Linus 花了兩周時間實(shí)現(xiàn)了一個分布式版本控制系統(tǒng),這就是后面的 Git。
Git 與 SVN 不同,它使用的是分布式管理,也就是沒有中心服務(wù)器的版本控制。要讓別人看到自己的修改,只需要將自己的修改推送給別人就行了。同時,雖然它沒有中心服務(wù)器,但它可以有一個備份服務(wù)器,它的功能有點(diǎn)類似于 SVN 的中央服務(wù)器,但它的作用僅是方便交換修改,而不像 SVN 那樣還要負(fù)責(zé)源代碼的管理。
此外,Git 還有極其強(qiáng)大的分支管理功能。多人協(xié)作的時候,分支的合并管理和切換功能,直接將 SVN 等版本控制工具遠(yuǎn)遠(yuǎn)甩開。
值得一提的是,Git 的版本管理也是相當(dāng)出色,版本的切換速度也是相當(dāng)迅速。因?yàn)榕c其他版本控制系統(tǒng)不同,其他版本控制系統(tǒng)管理的是文件,而 Git 管理的是修改。管理修改的方式讓版本回退和分支管理等功能的效率得到了極大的提升。
最后,Git 還有一項(xiàng)殺手锏級別的功能——遠(yuǎn)程倉庫。通過將 Git 代碼托管到 Git 公共服務(wù)器(比如國外的 GitHub,國內(nèi)的 Gitee),只要你有遠(yuǎn)程倉庫的 SSHkey,你就能獲取別人的代碼。
小結(jié)
現(xiàn)在的互聯(lián)網(wǎng)公司,對開發(fā)的要求一般都會有要求會使用版本控制工具(以 SVN 和 Git 居多,尤其是 Git),而 Git 開源免費(fèi)且無需部署專門的服務(wù)器的特點(diǎn)讓互聯(lián)網(wǎng)公司們對它青睞有加,所以學(xué)習(xí) Git 勢在必行。好在 Git 的入門并不困難,在 git新手入門微課中,只需要一個半小時左右就能基本掌握 Git 的使用,小伙伴們快來學(xué)習(xí)吧!