前轉載過一篇文章: 三個簡單規則,助你養成Git和GitHub好習慣
,有讀者留言說希望看到一些關于 Git 比較系統的簡潔教程。紅色石頭覺得很有必要,就開始準備寫一些關于 Git 的教程文章。本文是比較簡單的初級教程,能夠幫助我們快速了解 Git,并學會使用 Git 來講我們的本地項目推動到 GitHub 上。
為什麼選擇 Git
Git 是世界上最先進的分布式版本控制系統,簡單來說就是幫助個人或者公司團隊進行版本控制的一個強大的工具。我們熟知的 Linux 系統就是使用 Git 來進行版本控制的。
說起 Git 的誕生,先說一個有趣的故事。當年,Linux 還是使用一個商業的版本控制系統 BitKeeper。2005 年的時候,Linux 社群的一些大牛們試圖破解 BitKeeper 的協定,卻被 BitKeeper 的東家發現,一生氣就要收回Linux 社群的免費使用權。原以為這一懲戒能給 Linux 社群一次警鐘,誰知道 Linux 的 “生父” Linus 卷起袖子花了兩周時間自己用 C 寫了一個分布式版本控制系統,這就是 Git!一個月之内,Linux 系統的源碼已經由 Git 管理了!什麼是大牛?自己感受一下~
為什麼 Git 如此重要?因為作為一個開源免費的版本控制工具,Git 确實很好用,全世界的程式員們基本都在用它。俗話說 “工欲善其事,必先利其器!” 如果你想從一名初級的程式員成長為一名優秀的進階程式員,必須熟練掌握 Git。
好了,回歸正題,馬上開始我們的 Git 之旅!
安裝 Git
首先,我們需要安裝 Git 軟體。
1. 在 Linux 上安裝
如果是 Debian 或 Ubuntu Linux,直接在終端輸入以下指令即可完成安裝:
sudo apt-get install git
如果是其它 Linux,也可以現在 Git 官網上下載下傳源碼,然後在終端輸入以下指令,進行源碼安裝:
./config
make
sudo make install
2. 在 Mac OS X 上安裝
最簡單的方法是直接從 AppStore 安裝 Xcode,Xcode 已經內建了 Git,不過預設沒有安裝,你需要運作 Xcode,選擇菜單 “Xcode”->“Preferences”,在彈出視窗中找到 “Downloads”,選擇 “Command Line Tools”,點 “Install” 就可以完成安裝了。

3. 在 Windows 上安裝
在 Windows 上安裝 Git 非常簡單,直接在 Git 官網上下載下傳安裝程式,然後按預設選項安裝即可。
别急,安裝完成之後還有最後一步,就是自報家門,告訴 Git 你的使用者名和郵箱(即你的 GitHub 的使用者名和郵箱)。輸入以下指令設定:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
注意這裡的 “Your Name” 和 “[email protected]” 更換為你自己的就行了。
使用 --global 參數是讓本機器所有的 Git 倉庫都使用該使用者名和郵箱,不同的倉庫也可以使用不同的使用者名和郵箱。但我們通常隻會用到一個 GitHub 賬号,是以直接這麼設定就可以了。
建立本地倉庫
安裝 Git 之後,就可以在我們自己的電腦上來建立本地倉庫了。倉庫(Repository)可以簡單了解為一個目錄,每個目錄包含着一個倉庫。
首先,我們可以在自己電腦的任意位置建立一個檔案夾(例如 E: Git/ 目錄),該目錄作為 Git 的管理目錄,所有的倉庫都将建立在此目錄下。
在此目錄下,我們要建立一個倉庫,名為 learngit。打開 Git Bash,cd 到 Git/ 目錄下,建立一個目錄 learngit,再 cd 到 learngit 目錄,指令如下:
mkdir learngit
cd learngit
然後,使用下面的指令将 learngit 目錄變成 Git 可以管理的倉庫:
git init
運作該指令之後,就可以在 learngit 目錄下生成一個 .git 隐藏檔案夾,表示初始化成功,該目錄已經可以被 Git 管理了。
現在,我們已經建立了一個空的倉庫 learngit,下一步往倉庫裡加點内容。例如在該倉庫目錄下建立一個 readme.md 檔案。将該檔案添加到倉庫中需要兩個步驟:
1. 用指令 git add 告訴 Git,把檔案添加到倉庫:
git add readme.md
2. 用指令 git commit 告訴 Git,把檔案送出到倉庫:
git commit -m "create readme file"
其中,-m 後面輸入的是本次送出的說明,最好是有意義的,這樣你就能從曆史記錄裡友善地找到改動記錄。
如果有多個檔案,可以先使用 git add 将所有檔案添加進來,最後使用一次 git commit 指令就好。值得一提的是,還可以使用 git add . 直接将本倉庫目錄下所有的檔案都一次性添加到倉庫中,友善很多。
遠端倉庫
一般來說,我們不會隻在本地建立 GIt 倉庫,更常用的情況是讓本地倉庫與 遠端倉庫 GitHub 進行互連。Git 的強大之處也正在于此。
首先,我們需要一個 GitHub 賬号,相信大部分人早已有了。沒有的話,直接在 GitHub 上注冊,輸入使用者名和郵箱(這裡的使用者名和郵箱與上文安裝 Git 最後一步輸入的資訊一緻就好):
這時候,你的本地 Git 倉庫與 GitHub 遠端倉庫還沒有辦法傳輸的,由于使用的是 SSH 加密,需要進行以下設定。
1. 建立 SSH Key。在使用者主目錄下,看看有沒有 .ssh 目錄,如果有,再看看這個目錄下有沒有 id_rsa 和 id_rsa.pub 這兩個檔案,如果已經有了,可直接跳到下一步。如果沒有,打開終端(Windows 下打開 Git Bash),建立 SSH Key:
ssh-keygen -t rsa -C "[email protected]"
2. 登入自己的 GitHub,點選頁面右上角 Settings 選項。
确實是你推送的,而不是别人冒充的,而 Git 支援 SSH 協定,是以,GitHub 隻要知道了你的公鑰,就可以确認隻有你自己才能推送。
如果你有兩個電腦,比如公司一個,家裡一個。那麼可以把兩台電腦的公鑰都添加到你的 GitHub,這樣就都可以實作推送了。
從本地上傳到 GitHub
其實,本地 Git 倉庫與 GitHub 的互連有兩種形式,我們首先介紹第一種方式:從本地上傳到 GitHub。
剛才我們已經在本地建了一個 learngit 倉庫,那麼如何把這個倉庫上傳到我們的遠端倉庫 GitHub 上呢?
1. 在 GitHub 上建立一個新的空白倉庫,取名為 learngit。首先,點選自己的 GitHub 首頁右上角 New repository:
然後,Repository name 寫上 learngit,不要勾選 “Initialize this repository with a README”,直接點選 Create repository:
圖中 1 标注的就是遠端倉庫 learngit 的位址,點選 2 處就可以複制 1 的位址。我們待會就要用到。
2. 回到我們的 Git Bash 界面,把本地 Git 庫與剛剛建的遠端倉庫關聯,輸入下列指令:
git remote add origin https://github.com/yourname/learngit.git
其中, “
https://github.com/yourname/learngit.git” 就是上圖中的 1 位址,注意将 yourname 替換成你自己的 GitHub 使用者名。
3. 下一步就是把本地倉庫的所有檔案(剛剛建立的 readme.md)上傳到 GitHub 上。運作以下指令:
git push -u origin master
運作指令之後,一般需要輸入 GitHub 賬号的使用者名和密碼,按要求輸入就行了。上傳成功顯示如下語句:
再回到 GitHub 中,進入 learngit 倉庫,就會發現 readme.md 檔案已經傳到我們的 GitHub 上了。GitHub 頁面中看到遠端庫的内容已經和本地一模一樣了。
之後,我們在本地 learngit 倉庫中做任何改動後,都可以直接運作下面的語句添加、送出到倉庫并上傳到 GitHub 遠端倉庫中。
git add .
git commit -m "xxx"
git push -u origin master
大功告成,現在你已經基本掌握了 Git 的使用方法論。不過下面紅色石頭還要給大家介紹另一種常用的讓本地倉庫與 GitHub 遠端倉庫互聯的方法。
從 GitHub 克隆到本地倉庫
還有一種情況很常見,就是我們已經在 GitHub 上建立了一個遠端倉庫了,如何使用 Git 将 GitHub 上的倉庫同步到本地呢?
假如我們事先在 GitHub 上建立了一個 learngit 倉庫,如下圖所示:
1. 點選上圖中紅色方框圖示,即可複制該倉庫的位址。
2. 打開 Git Bash,cd 到我們之間建立的 /Git 目錄下(/Git 目錄下沒有 learngit 檔案夾,忽略上一節的操作),輸入以下指令,就可以直接将 GitHub 遠端倉庫 learngit 克隆到本地。
git clone https://github.com/yourname/learngit.git
其中,“
” 就是上圖中複制的位址。
顯示以下語句,證明 clone 完成!
這樣,在 /Git 目錄下就會出現 learngit 檔案夾,GitHub 遠端倉庫的所有檔案都會 clone 在 /Git/learngit/ 目錄下(包含一個 .git 檔案夾)。
這樣就完成了從 GitHub 遠端倉庫 clone 到本地倉庫的功能,這種方法不需要運作 git init 語句,直接上面一條語句即可。
克隆之後,就可以在本地倉庫添加檔案、修改項目等,再使用下面三條語句來上傳到 GitHub 遠端倉庫。這跟上一節最後介紹的方式是一樣的。
git add .
git commit -m "xxx"
git push -u origin master
注意,一般輸入 “git push -u origin master” 語句後,都需要輸入 GitHub 使用者名和密碼。這是因為我們使用的是 https 送出方式,改為 ssh 方式即可。但紅色石頭覺得這 “多餘” 的操作未必不是好事,也算是一種保護機制吧。是以,在這篇教程中就不介紹方法了。
總結
好了,紅色石頭已經把 Git 的最簡單的用法介紹完了。網上相關的部落格和教程很多,但是,往往比較雜或者不準确、不完整。這篇教程是我精心整理并親自實踐的。相信大家在讀完本文之後,可以很清楚地掌握如何在本地建立 Git 倉庫和将本地項目與遠端倉庫互連的兩種方法。趕緊試試吧!