世界上最流行的版本控制系統——Git
版本控制系統,也就是VCS(Version Control System),可以說是程式設計師必備的工具。那麼它到底是什麼,有什麼作用呢?
舉個例子,如果你想檢視你所開發的軟體在一個月之前的模樣,同時還想比較之前的程式碼與現在的程式碼的差異,又或者你想把程式碼回退到之前的某個時間點的版本,你會怎麼做呢?
如果你不瞭解VCS的話,也許你已經懵了,好像根本沒有辦法辦到!這個時候你就需要學習一下VCS了,它可以幫你解決上面提到的那些問題,以及其他許多的高能操作,讓你能夠輕鬆管理你的程式碼。
VCS是一類軟體的統稱,其大致可以分為三種:
- 本地式:採用某種簡單的資料庫來記錄檔案的歷次更新差異。
- 集中式:如SVN,由一個單一的伺服器集中管理儲存所有檔案的版本。
- 分散式:如Git,每個客戶端持有程式碼倉庫的完整映象。
今天我們的主角就是Git,它是當今最流行的開源分散式版本控制系統,可快速高效地管理任意規模的專案。
關於Git的誕生還有一段不得不提的故事:Git的作者就是林納斯·本納第克特·託瓦茲(Linus Benedict Torvalds),想必大家都知道,他就是大名鼎鼎的Linux核心的作者。當初Linux核心開源社群使用的是某商業公司免費提供的版本控制系統,後來合作關係解除了,林納斯則自己花了不到兩週的時間開發出了Git這一偉大的軟體。
Git在儲存和對待各種資訊的時候與SVN有很大差異:
-
SVN將它儲存的資訊看作是一組基本檔案和每個檔案隨時間逐步累積的差異。
-
Git更像是把資料看作是對小型檔案系統的一組快照。每次你提交更新或在Git中儲存專案狀態時,它對當時的全部檔案製作一個快照並儲存這個快照的索引。為了高效,如果檔案沒有修改,Git不再重新儲存該檔案,而是隻保留指向之前儲存的檔案的引用。
在Git中,你的檔案總是處於以下三種狀態之一:
-
已提交:資料已經安全儲存在本地資料庫中。
-
已修改:修改了檔案,但還沒儲存到資料庫中。
-
已暫存:對一個已修改檔案的當前版本做了標記,使之包含在下次提交的快照中。
Git專案的三個工作區域:
-
Git倉庫:Git用來儲存專案資料的地方。克隆倉庫時,拷貝的就是這裡的資料。
-
工作目錄:簡單來說就是你寫程式碼的地方,是Git對專案的某個版本獨立提取出來的內容。
-
暫存區域:是一個儲存了下次將提交的檔案列表資訊的檔案,一般在Git倉庫目錄中。
基於Git的工作流程:
-
在工作目錄中修改檔案。
-
暫存檔案,將檔案的快照放入暫存區域。
-
提交更新,找到暫存區域的檔案,將快照永久性儲存到Git倉庫目錄。
理解三種狀態、三個區域以及工作流程對使用和理解Git有很大的幫助,請務必認真理解。
Git可以在Git官網(https://git-scm.com)選擇對應的作業系統進行下載,之後的安裝一直選擇下一步直至完成,全部按預設配置即可。
由於Git常用命令較多,就不便堆放在這同一篇文章了,後續會推出專門講Git常用命令的文章或者視訊,請大家敬請期