Git和Github一路都很出名但是一般人對甚麼是Git和Github,它們倆有甚麼區別,有甚麼用途等等都不是很了解,所以這次讓我來解釋一下。而因為Github是基於Git,所以我會先講Git,後講Github。
甚麼是Git?
Git是世界知名的一個分散式版本控制系統(Distributed Version Control System)軟件。
Git有甚麼用?
Git版本控制系統有一種特別的資料庫叫Repository,在Repository裏的項目檔案就可享有歷史(History)功能。
歷史(History)功能可以記錄一個項目(Project)在一段時間內的變化,它能告訴你不同時間點內, 甚麼人,在甚麼時候,為甚麼對項目中的那個檔案做出了甚麼改動。
當在某個時間你覺得現在這個項目改動不好,還是兩個版本前的那個好,你可以隨時將整個項目的所有檔案(包括所有代碼,圖片,檔案等),倒回到之前已儲存的時間點上。
回到兩個版本前後,可能突然發現原來剛才的最新版本才可以上線發佈,你又可以立刻將整個項目還原到最新版本 這有點像在用多拉A夢(叮噹)裏時光機一樣,讓項目的狀態可以穿越時空,工作起來就非常有彈性。
Git決解了我們甚麼問題
你不再命名N個資料夾
在沒有版本控制軟件的情況下,如果我們要做手動版本控制的話,典型的會用資料夾命名去分開每個版本,可能叫Version1, Version2, Version3...Version1000等等。這樣做資料夾多起來(版本多)時會變得很亂,我們跟本沒法知道那個版本有甚麼內容,而有了Git我們就可以只使用一個資料夾就將多個版本資料儲存好,並且能知道每個版本中大概有甚麼內容。
-
讓多人可以一同協作
如果項目中不止你一個,而是和幾個人一齊合作,而每人手中都有Version1, Version2, Version3...,當你想其他人的改動案合併到一個主體時,就會非常困難。而Git內建的合併功能將這個合併過程的難度大大降低。
時光機功能
這個可以記錄並返回不同時間點的歷史功能上面已提到,就是有甚麼時候不對勁可以隨時返回。例如你用Git用來編過一般文件,有誰在甚麼地方改過過甚麼一查就一目了然,沒得抵賴,這對於上班一族應對變幻莫測的同事時,簡直就是個神器。
甚麼是Github
Git和Github的最大不同是Git是單一個體使用,Github則是多人版本的Git平台。
Github是一整個版本控制系統的平台,因為Github是基於Git,所以除了有Git的功能外,Github平台額外提供了網存空間,容易看懂的網頁介面,讓成千上萬的開發人員在上面自己的Repository分享,溝通和合作寫代碼完成產品。
其他類似的平台還有 GitLab, Bitbucket和 Azure DevOps Server(前身為Team Foundation server)
Git比起其他版本控制軟件
分散式和集中式版本控制軟件
集中式版本控制就是檔案都集中在一台主機上,所有人都在同一個主機上面改東西。如主機死機了,那全部人都暫時不能工作,只好等待主機修好了。集中式版本控制系統例子有Subversion , Azure DevOps Server(Team foundation server)。
在分散式版本控制系統中,每個人的電腦裏都有自己一套完整的代嗎和時間點記錄,每個人都能夠在自己電腦儲存所有改動就算有一個或者多個的電腦死機了,只要有一套代碼版本在,死機了的人都可以再次同步,恢復代碼進度。分散式版本控制系統軟件例子有Git和Mercurial
Git比起其他版本控制軟件突出之處
開發人員都喜歡用Git多於其他類似軟件主要因為Git
- 免費
- 合併檔案速度非常快
- 儲存時間點速度非常快
Git或Github總結
雖然不使用Git或Github都可以寫程序,但是現在如果你在求職網站看,很多程序員工作都想要求程序員懂得用Git和Github,因為Git或Github對協作做出產品作用實在很大。
如果你對Git和Github有興趣想學下怎麼用在你的工作中的話,可以看看我在youtube頻道的一個免費Git+Github版本控制入門教學課程。
這次就講到這裡,希望這次能讓你稍稍了解到Git和Github是甚麼,和為甚麼我們要使用它們。感謝你的觀看。