
導讀:什麼是GitHub?Git與GitHub之間是什麼關系?我們為什麼需要版本控制系統?GitHub如何使用?本文将帶你一探究竟。
本文字數:1710,閱讀時長大約:13分鐘
一、什麼是版本控制
按照百度百科的說法:“版本控制是指對軟體開發過程中各種程式代碼、配置檔案及說明文檔等檔案變更的管理,是軟體配置管理的核心思想之一。”
這裡的核心詞是對“檔案變更的管理”,其實不管是寫代碼還是寫文檔,當檔案發生變更時都會有兩個繞不開的問題:一個是檔案版本的管理,另一個是團隊如何協作。
比如當你在做一份報告時,每一次比較大的改動可能都會做一個副本,以備後面有改回來的需要。每一個副本檔案名都加一些不同的字尾,比如數字、字母、日期等等。不過可能時間一長,你自己也不記得每個副本都做過的哪些修改,甚至找不到最後一個版本是哪份檔案了。又比如當一個團隊需要去修改一份資料檔案,小明、小紅、小剛等人都在同時修改,每個人的修改是否都能被包含在資料檔案裡,最終的檔案以哪一份為準?在這些場景中,我們都需要一個檔案版本控制系統來幫助我們解決檔案的版本問題以及團隊協作的問題。
版本控制系統可以幫助我們記錄檔案的變更,包括在什麼時間、被什麼人、修改了哪些内容。這樣我們就不用在自己的電腦裡儲存那麼多份檔案副本了,隻需要将每一次的修改送出到版本控制系統中去。如果未來需要檔案回溯,可以直接在系統中選擇曆史版本,非常簡單友善。另外在軟體開發中往往是一個團隊共同進行,版本控制系統可以支援并行開發,能夠通過分支、合并等方式有效地解決修改沖突。
版本控制系統有很多,除了我們今天要介紹的 Git,比較常用的還有 Subversion, CVS,和 Mercurial。
二、什麼是 Git
Git,最初是由 Linux之父 Linus Torvalds在2005年開發出來的一款開源的版本控制系統。和其他版本控制系統一樣,它最核心的一個概念就是倉庫(repository)。倉庫其實就是在電腦中開啟了Git記錄的一個檔案夾/目錄。倉庫中可以包含多個檔案以及子檔案夾。Git中的倉庫是存儲在本地電腦上的,不像其他的版本控制系統(比如Subversion)将倉庫存儲在伺服器當中。這就意味着Git允許你在電腦不聯網的情況下也可以正常工作,你可以修改檔案、送出、檢視修改曆史、分支、合并等等。
Git最初隻有指令行,後來也開發出了桌面版GUI的程式,不過桌面版GUI功能有限,想要使用最完整的功能,還是建議使用指令行。
三、什麼是 GitHub
Git雖然是一個很好的版本管理系統,但是隻通過指令行的方式來使用還是有一些不友善。于是在2008年,開源社群開發了一個叫GitHub的網站。它可以存儲所有的Git倉庫,并且提升了開發者們之間的協作體驗。GitHub迅速成為了開源社群的寵兒,大量開源項目紛紛落戶,使用它來做版本控制以及溝通協作。現在有成千上萬的公司也加入了進來,使用GitHub作為公司内部的版本控制系統。
時至今日,GitHub已經不再單單是一個版本管理的網站,它更像是一個開源社群的社交工具。很多開發者們都會在上面去逛,看看有哪些好玩的、自己感興趣的項目。我們也可以看到其他開發者們參與過哪些項目,每個人都好像有一張自己的名片。當你想要參與到某個項目中去時,項目管理者也可以根據你的記錄來選擇是否接受。
四、Git的安裝與使用
了解了Git與GitHub的原理之後,我們來看一下如何使用GitHub建立一個新的或者使用一個項目。
(1)打開GitHub的網站:www.github.com
如果還沒有賬戶,可以按照提示注冊一下。
(2)建立一個新的倉庫
點選建立倉庫(Create repository)按鈕
填寫倉庫(項目)名稱,設定成公共/私有倉庫,同時可以初始化一個README檔案。
建立成功
(3)在本地電腦安裝Git
以 CentOS為例,使用 yum install -y git 指令安裝;其他作業系統可以參考Git官方網站的安裝手冊
https://git-scm.com/downloads
安裝好後不要忘了配置 Git賬号
(4)将GitHub的倉庫複制到本地
點選Code按鈕,将倉庫的URL複制下來。
使用 git clone + url 的指令将倉庫複制到本地
(5)在本地添加一個新檔案
進入github-test檔案夾,添加一個hello.c的檔案。
使用 git status 指令檢視目前狀态,系統提示有一個未跟蹤的檔案hello.c,建議使用git add指令來包含要送出的内容
使用 git add 指令添加要送出的檔案
使用 git commit -m "comments" 來送出修改;注意,這裡的送出隻是送出到了本地的 Git倉庫,如果想同步到 GitHub還需要使用到 git push指令
使用 git push 指令将修改同步到 GitHub
回到GitHub,可以看到新的檔案被添加進來
擷取知識幹貨、增加面試經驗、了解職場人生
歡迎關注微信公衆号