Git 簡潔教程(1):本地專案如何與 GitHub 遠端倉庫互連?

红色石头發表於2018-10-15

之前轉載過一篇文章:三個簡單規則,助你養成Git和GitHub好習慣,有讀者留言說希望看到一些關於 Git 比較系統的簡潔教程。紅色石頭覺得很有必要,就開始準備寫一些關於 Git 的教程文章。本文是比較簡單的初級教程,能夠幫助我們快速瞭解 Git,並學會使用 Git 來講我們的本地專案推動到 GitHub 上。

1. 為什麼選擇 Git

Git 是世界上最先進的分散式版本控制系統,簡單來說就是幫助個人或者公司團隊進行版本控制的一個強大的工具。我們熟知的 Linux 系統就是使用 Git 來進行版本控制的。

說起 Git 的誕生,先說一個有趣的故事。當年,Linux 還是使用一個商業的版本控制系統 BitKeeper。2005 年的時候,Linux 社群的一些大牛們試圖破解 BitKeeper 的協議,卻被 BitKeeper 的東家發現,一生氣就要收回Linux 社群的免費使用權。原以為這一懲戒能給 Linux 社群一次警鐘,誰知道 Linux 的 “生父” Linus 捲起袖子花了兩週時間自己用 C 寫了一個分散式版本控制系統,這就是 Git!一個月之內,Linux 系統的原始碼已經由 Git 管理了!什麼是大牛?自己感受一下~

為什麼 Git 如此重要?因為作為一個開源免費的版本控制工具,Git 確實很好用,全世界的程式設計師們基本都在用它。俗話說 “工欲善其事,必先利其器!” 如果你想從一名初級的程式設計師成長為一名優秀的高階程式設計師,必須熟練掌握 Git。

好了,迴歸正題,馬上開始我們的 Git 之旅!

2. 安裝 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->Git Bash。

開啟 Git Bash,蹦出一個類似 cmd 視窗的東西,就說明 Git 安裝成功!

別急,安裝完成之後還有最後一步,就是自報家門,告訴 Git 你的使用者名稱和郵箱(即你的 GitHub 的使用者名稱和郵箱)。輸入以下命令設定:

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

注意這裡的 “Your Name” 和 “email@example.com” 更換為你自己的就行了。

使用 –global 引數是讓本機器所有的 Git 倉庫都使用該使用者名稱和郵箱,不同的倉庫也可以使用不同的使用者名稱和郵箱。但我們通常只會用到一個 GitHub 賬號,所以直接這麼設定就可以了。

3. 建立本地倉庫

安裝 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 . 直接將本倉庫目錄下所有的檔案都一次性新增到倉庫中,方便很多。

4. 遠端倉庫

一般來說,我們不會只在本地建立 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 "youremail@example.com"

2.登入自己的 GitHub,點選頁面右上角 Settings 選項。

點選 SSH and GPG keys:

點選 New SSH key 後,輸入 Title 和 Key。重點來了,Key 就是你電腦的 id_rsa.pub 裡的內容,直接複製過來就好。

點選 Add SSH key,就完成了 SSH 的配置。之所以要設定 SSH key,是為了識別出你推送的確實是你推送的,而不是別人冒充的,而 Git 支援 SSH 協議,所以,GitHub 只要知道了你的公鑰,就可以確認只有你自己才能推送。

如果你有兩個電腦,比如公司一個,家裡一個。那麼可以把兩臺電腦的公鑰都新增到你的 GitHub,這樣就都可以實現推送了。

5. 從本地上傳到 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 遠端倉庫互聯的方法。

6. 從 GitHub 克隆到本地倉庫

還有一種情況很常見,就是我們已經在 GitHub 上建立了一個遠端倉庫了,如何使用 Git 將 GitHub 上的倉庫同步到本地呢?

假如我們事先在 GitHub 上建立了一個 learngit 倉庫,如下圖所示:

1.點選上圖中紅色方框圖示,即可複製該倉庫的地址。

2.開啟 Git Bash,cd 到我們之間建立的 /Git 目錄下(/Git 目錄下沒有 learngit 資料夾,忽略上一節的操作),輸入以下命令,就可以直接將 GitHub 遠端倉庫 learngit 克隆到本地。

git clone https://github.com/yourname/learngit.git

其中,“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 方式即可。但紅色石頭覺得這 “多餘” 的操作未必不是好事,也算是一種保護機制吧。因此,在這篇教程中就不介紹方法了。

7. 總結

好了,紅色石頭已經把 Git 的最簡單的用法介紹完了。網上相關的部落格和教程很多,但是,往往比較雜或者不準確、不完整。這篇教程是我精心整理並親自實踐的。相信大家在讀完本文之後,可以很清楚地掌握如何在本地建立 Git 倉庫和將本地專案與遠端倉庫互連的兩種方法。趕緊試試吧!

參考文獻:

廖雪峰 Git 教程


相關文章