給女朋友講清楚Git和GitHub的區別,這一篇就夠了!
- 2019 年 12 月 17 日
- 筆記
寫程式碼的小夥伴們一定遇到過諸如「 Git」和「 GitHub」之類的術語。在實際覺得過程中很有可能也會經常使用到它,Git或GitHub到底是什麼,它們之間有什麼區別。

給女盆友講清楚就用這篇文章好了。
要了解Git和GitHub之間的確切區別,您首先需要了解有關版本控制的一些事情,那麼,什麼是版本控制?
版本控制:Git VS GitHub
版本控制是指記錄一段時間內對一個文件或一組文件的更改的系統,稱為「版本」。換句話說,這些版本將幫助您跟蹤程式碼/項目中的更改,如果需要,還可以撤消這些更改。
當處理較大的項目時,這種能夠比較、區分和還原特定項目的兩個版本之間的更改的功能變得非常有用。較大的項目意味著更多的人使用相同的程式碼工作,這增加了衝突的機會。使用版本控制,您可以輕鬆防止這些衝突。
該控制程式碼版本控制的系統稱為版本控制系統(VCS)。為了獲得更好的畫面,您可以將其視為資料庫。在此資料庫中,VCS會獲取整個項目的快照並將其存儲為版本。現在,藉助這些快照,您可以輕鬆比較版本並根據需要在版本之間進行切換。查看下面的圖片展示了整個過程:

我認為現在您已經清楚地了解了版本控制的概念。我想在這裡提到的一件事是不要將VCS與備份/部署系統混淆。與備份系統不同,VCS完全不需要更改或更換工具鏈。下面,我列出了使用版本控制的一些優點:
- 版本控制創建適當的工作流,以幫助人們防止在使用不同且不兼容的工具開發時產生混亂。
- 每個版本都有對此版本所做的更改的描述。這些描述有助於按版本跟蹤程式碼中的更改。VCS會同步版本,並確保您的更改不會與使用同一存儲庫的其他版本發生衝突。
- 當其他人保存您的程式碼的新版本時,VCS會保留更改的歷史記錄。您可以查看此歷史記錄,以了解誰,為什麼以及何時進行了什麼更改。
- VCS自動化功能可以在保存任何新版本時執行測試、程式碼分析和部署,從而節省您和團隊的時間,並生成一致的結果。
現在讓我們繼續從Git開始區別Git和GitHub。
什麼是Git?
既然您已經了解了版本控制,那麼對Git的理解將非常容易。那麼,什麼是Git?
Git是您在本地系統上安裝的版本控制軟體。對於一個單獨從事項目的個人而言,Git對您來說會是一個出色的軟體。但是,如果您正在與一個大型團隊一起合作一個項目,所有人都將在同一個項目上工作,但是你們每個人都將擁有同一項目的不同版本。
考慮下這種情況。您在電腦上的項目目錄中進行了更改,並且想要將這些更改發送給協作者。此外,您希望將所做的更改直接顯示在電腦的項目目錄中。
在處理項目時,與團隊成員保持一致對於避免任何類型的衝突都是非常重要的。那麼,您將如何做呢?好吧,Git會處理所有這一切,但是這裡唯一的條件是每個團隊成員必須在其系統上安裝Git。
Git也被稱為分散式版本控制系統,這意味著使用Git,您可以將您以及他人的更改推到別人的電腦上,如下所示:

現在,使用Git,您可以與團隊成員一起使用同一副本。但是,除非直到您拉出協作者的更改並推回自己的更改,否則您將要使用的副本不會反映主目錄中的任何更改。

在當今市場上,Git是使用最廣泛且使用最廣泛的現代VCS。它也已經非常成熟,並且是一個維護良好的開源項目。由Linux內核的創建者Linus Torvalds於2005年開發,如果您查看以上Google Trends結果的圖片,您會發現Git自2005年以來在市場上一直在增長。
各種軟體項目,包括商業軟體和開源軟體,都完全依賴Git進行版本控制。那麼,Git與其餘的有什麼不同?
Git與其他任何VCS(例如Subversion(SVN),Mercurial,TFS,Perforce,Bazaar等)的主要區別在於Git存儲數據的方式。在其他系統中,資訊存儲為基於文件的更改的列表,這也稱為基於增量的版本控制。但是對於Git,它以微型文件系統快照流的形式存儲其數據。
使用Git,無論何時提交或保存項目狀態,都會獲取當前文件狀態的快照並為其存儲引用。如果未進行任何更改或更新,則Git將存儲一個到先前已經存儲的文件的鏈接。下圖展示了Git如何存儲不同的版本:

但是,只有當您知道協作者的系統何時打開並連接到網路時,Git才有用。那麼當您的團隊成員不在線時您將怎麼辦?在這種情況下,擁有相同項目副本的第三方將很方便,您可以在其中輕鬆地進行更改。
好吧,您將很高興知道這就是GitHub的用途!在此部落格的下一部分,我們將對此進行進一步說明。
什麼是GitHub?
如前所述,Git是一個跟蹤程式碼更改的版本控制系統,而GitHub是一個基於Web的Git版本控制存儲庫託管服務。它提供了Git的所有分散式版本控制和源程式碼管理(SCM)功能,並提供了一些自己的特性。對於開發人員而言,這是他們可以在其中存儲項目並與志趣相投的人建立聯繫的地方。您可以將其視為「程式碼雲」。

因此,基本上,GitHub是一個可以存儲相同工作目錄或存儲庫的地方。從字面上看,它是Git存儲庫的中心,您可以在GitHub上創建一個免費帳戶,就可以在其中使用它。這些帳戶具有豐富的存儲空間,您可以在其中存儲您的存儲庫並建立適當的配置文件來保存所有最重要的項目。
默認情況下,存儲庫是公共的,每個人都可以看到您的程式碼。但是,如果您願意,也可以將其設為私有。而且,GitHub與Git合作。
Git是命令行工具,而GitHub是基於Web的圖形介面,可為您提供訪問控制、基本任務管理工具以及一些協作功能。
此外,GitHub可以用各種程式語言託管您項目的源程式碼,並跟蹤每次迭代所做的更改。GitHub的功能並不止於此。它提供以下三個非凡功能,使其功能更加強大:
- fork:或通常稱為fork。當您沒有正確的訪問許可權時,這就是從一個用戶的帳戶複製存儲庫。因此,您可以複製它並在您自己的帳戶下對其進行修改。
- pull:對複製的程式碼進行更改,並希望與其原始所有者共享時,可以向其發送一個稱為「 pull request」的通知。
- merge:現在修改程式碼的原始所有者,如果他們發現與您的更改相關,則只需單擊一個按鈕,就可以將您在存儲庫中所做的更改與原始存儲庫合併。
如果你的pull請求被接受,那麼您會在原始網站上獲得信譽,並顯示在用戶個人資料中。就像簡歷一樣,可以幫助GitHub項目維護者確定您的聲譽。因此,GitHub上的人員和項目越多,項目維護者看到其貢獻者潛力的能力就越高。這鼓勵年輕的開發商和項目在該行業中獲得更大的發展。
現在我們已經定義了Git和GitHub,讓我們總結一下兩者之間的基本區別。

到此我們結束了有關Git vs GitHub的文章。