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