GitHub 使用手冊 - 基礎篇

緣起

Git已經成爲程序員必備技能之一,而GitHub作爲作流行的Git倉庫託管平臺,其不只提供Git倉庫託管,仍是一個很是棒的技術人員社交平臺,能夠經過開源的項目進行協做、交流,是如今優秀的工程師必須嫺熟運用的。php

本套教程從 GitHub 的歷史入手,介紹 Git 安裝、建立倉庫、Fork、社會化、命令行開發,到最後的圖形化工具的使用。html

學習完本教程,將不只掌握 GitHub 命令行使用方法,也會學會圖形化使用方法。git

GitHub 簡介

Git 是一個優秀的分佈版本控制系統。版本控制系統能夠保留一個文件集合的歷史記錄,並能回滾文件集合到另外一個狀態(歷史記錄狀態)。另外一個狀態能夠是不一樣的文件,也能夠是不一樣的文件內容。在一個分佈版本控制系統中,每一個人都有一份完整的源代碼(包括源代碼全部的歷史記錄信息),並且能夠對這個本地的數據進行操做。分佈版本控制系統不須要一個集中式的代碼倉庫。程序員

GitHub 是一個面向開源及私有軟件項目的託管平臺,由於只支持 Git 做爲惟一的版本庫格式進行託管,故名 GitHub。github

GitHub 於 2008 年 4 月 10 日正式上線,除了 Git 代碼倉庫託管及基本的 Web 管理界面之外,還提供了訂閱、討論組、文本渲染、在線文件編輯器、協做圖譜(報表)、代碼片斷分享(Gist)等功能。目前,其註冊用戶已經超過百萬,託管版本數量也是很是之多,其中不乏知名開源項目 Ruby on Rails、jQuery 等。編程

GitHub 優點

GitHub 之因此如此受歡迎,它的優點是不容忽視的:windows

  1. GitHub 只支持 Git 格式的版本庫託管,而不像其餘開源項目託管平臺還對CVS、SVN、Hg 等格式的版本庫進行託管。GitHub 的哲學很簡單,既然 Git 是最好的版本控制系統之一(對於不少喜歡 Git 和 GitHub 的人沒有之一),沒有必要爲兼顧其餘版本控制系統而犧牲 Git 某些獨有特性。所以沒有支持其餘版本控制系統的歷史負擔,是 GitHub 成功的要素之一。瀏覽器

  2. GitHub 對 Git 版本庫提供了完整的協議支持,支持 HTTP 智能協議、Git-daemon、SSH 協議。緩存

  3. GitHub 提供在線編輯文件的功能,不熟悉 Git 的用戶也能夠直接經過瀏覽器修改版本庫裏的文件。ruby

  4. 將社交網絡引入項目託管平臺是 GitHub 的創舉。用戶能夠關注項目、關注其餘用戶進而瞭解項目和開發者動態。

  5. 項目的 Fork 和 Pull Request 構成 GitHub 最獨具一格的工做模式。對提交代碼的逐行評註及 Pull Request 構成 GitHub 特點的代碼審覈。

  6. GitHub 經過私有版本庫託管、面向企業的版本庫託管和項目管理平臺、人員招聘等付費服務得到了商業上的成功,這種成功使得 GitHub 沒必要以頁面中嵌入廣告的方式維持運營,最大的受益者仍是用戶。

  7. GitHub 網站採用 Ruby on Rails 架構,在 Web 設計中運用了大量的 JavaScript、AJAX、HTML5 等技術,支持對使用 Markdown 等標記語言的內容進行渲染和顯示等。關注細節使得 GitHub 成爲了項目託管領域的後起之秀。

    GitHub 註冊

    要想使用 GitHub 第一步固然是註冊 GitHub 帳號:

    一、首先打開 https://github.com/pricing 進行註冊。

    二、在打開的頁面中點擊「Sign up now」註冊,如圖 1.1 所示。

    Sign up now
    圖 1.1

    三、在接下來的頁面中建立用戶名,填寫 email 和設定密碼,點擊「Create an account」按鈕建立帳戶,如圖1.2。

    Sign up now
    圖 1.2

    四、選擇帳戶類型 ,這裏咱們默認選擇 「Free」 類型,點擊「Finish sign up」按鈕完成註冊,如圖 1.3。

    Sign up now
    圖 1.3

    注:不一樣類型的選擇根據咱們的須要,若是存放開源項目,則免費託管;存放私有庫,則須要付費。費用以下表:

    私有庫空間 費用 私有庫數量
    $50/月 50
    $20/月 20
    $10/月 10
    微小 $5/月 5
    免費 $0/月 0
     

    安裝Git

    一、下載並安裝 Git 最新版本

    二、安裝完成後,打開 Terminal 命令(針對蘋果系統用戶)或者命令提示行(針對 Windows 和 Linux 用戶)。

    三、告訴 Git 你的姓名,以便你的提交能被正確地標記。在 $ 後輸入下面的內容:

    $ git config --global user.name "YOUR NAME"

    四、告訴 Git 郵箱地址,以便與你的 Git 提交進行關聯。你指定的郵箱要和郵箱設置裏的是同一個。如何保持你的郵箱地址隱藏,請參考:保持你的郵箱地址私有

    $ git config --global user.email "YOUR EMAIL ADDRESS"

    經過 Git 驗證 GitHub

    當你經過 Git 鏈接到一個 GitHub 倉庫後,咱們須要驗證 GitHub,這裏有兩種驗證方法:

    • 經過 HTTPS 驗證
    • 經過 SSH 進行驗證

    經過 HTTPS 創建鏈接(推薦)

    若是選擇 HTTPS 方式,咱們能夠用一個證書小幫手把 GitHub 密碼緩存在 Git

    經過 SSH 創建鏈接

    若是選擇 SSH 方式,咱們須要在電腦中生成 SSH keys,用來從 GitHub 中 push 或 pull。

    在 GitHub 上建立一個新倉庫

    一、在任意的頁面右上角點擊 +,而後點擊新建倉庫 New repository。

    新建倉庫

    二、爲你的倉庫建立一個簡短便於記憶的名字。例如 「hello-world」。

    建立一個簡短便於記憶的名字

    三、爲你的倉庫添加一個描述(非必須的)。例如 「My first repository on GitHub」。

    爲你的倉庫添加一個描述

    四、選擇你的倉庫類型爲公有或者私有:

    • Public:公有倉庫對於一個剛入門的新手來講是一個不錯的選擇。這些倉庫在 GitHub 上對於每一個人是可見,你能夠從協做型社區中受益。
    • Private:私有倉庫須要更多地步驟。它們只對於你來講是可用的,這個倉庫的全部者屬於你和你所指定要分享的合做者。私有倉庫僅僅對付費帳戶可用。更多的信息請參照 "What plan should I choose?"。

    選擇你的倉庫類型爲公有或者私有

    五、選擇Initialize this repository with a README。

    Initialize this repository with a README

    六、點擊Create repository。

    Create repository

    恭喜!你已經成功地建立你的第一個倉庫,而且經過 README 文件初始化了它。

    提交你的第一個更改

    一個提交就像你項目裏的文件在一個特定時間點上的快照同樣。

    當你建立了一個新倉庫,你經過 README 文件初始化它。README 文件裏有關於你這個項目詳細的解釋,或者添加一些關於如何安裝或者使用該項目的文檔。README 文件的內容會自動地顯示在你倉庫的首頁。

    讓咱們提交一個對 README 文件的修改。

    一、在你倉庫的文件列表,點擊 README.md。

    New repository

    二、在文件內容的上方,點擊編輯按鈕。

    三、在 Edit file 標籤上,輸入一些關於你本身的信息。

    你的倉庫添加一個描述

    四、在新內容的上方,點擊 Preview changes。

    Preview changes

    五、檢查一下你對這個文件進行的更改,你會看到新的內容被綠色標記。

    新的內容被綠色標記

    六、在頁面的底部,即 "Commit changes" 下方,輸入一些簡短、有意義的提交信息來解釋你對這個文件所進行的修改。

    Commit changes

    七、點擊 commit changes。

    Commit changes

    Fork 一個示例倉庫

    Fork 是對一個倉庫的克隆。克隆一個倉庫容許你自由試驗各類改變,而不影響原始的項目。

    通常來講,forks 被用於去更改別人的項目(貢獻代碼給已經開源的項目)或者使用別人的項目做爲你本身想法的初始開發點。

    提出更改別人的項目

    使用 forks 提出改變的一個很好的例子是漏洞修復。與其記錄一個你發現的問題,不如:

    • Fork 這個倉庫
    • 進行修復
    • 向這個項目的擁有者提交一個 pull requset

    若是這個項目的擁有者認同你的成果,他們可能會將你的修復更新到原始的倉庫中!

    使用別人的項目做爲你本身想法的初始開發點

    開源的核心是共享代碼,咱們能夠製做更好、更可靠的軟件。

    事實上,當你在 GitHub 上建立一個倉庫時,你能夠選擇自動包含一個許可文件,這個文件決定你是否但願將你的項目分享給其餘人。

    Fork 一個倉庫分爲簡單的兩步。咱們已經建立了一個倉庫讓你用於練習!

    1. 在 GitHub 上,定位到 octocat/Spoon-Knife 倉庫。
    2. 在頁面右上角,點擊 Fork 按鈕。

    Fork

    就這樣!如今你已經 fork 這個原始的 octocat/Spoon-Knife 倉庫。

     

     

    同步你的 Fork 倉庫

    你或許已經 fork 一個項目爲了提交更改向 upstream 或原始倉庫。這種狀況下,很好的實現了將 upstream 倉庫按期同步到你的 fork。要作到這一點,你須要在命令行中使用 Git。你可使用你剛剛 fork 的 octocat/Spoon-Knife 倉庫去練習設置 upstream 倉庫。

    第一步:安裝 Git

    你首先應該 安裝 Git,若是你尚未。也不要忘記 經過 Git 驗證 GitHub

    第二步:爲你 fork 的倉庫建立一個本地克隆

    如今,你已經成功 fork Spoon-Knife 倉庫,但在你本身的計算機上並無這個倉庫的文件。讓咱們克隆你 Fork 的代碼到你本地的計算機上。

    一、在 GitHub 上,定位到你 fork 的 Spoon-Knife 倉庫。

    二、在你 fork 的倉庫頁面的右側邊欄,點擊複製圖標複製你 fork 的 URL。

    複製圖標複製你 fork 的 URL

    三、打開 Terminal 命令(針對蘋果系統用戶)或者命令提示行(針對 Windows 和 Linux 用戶)。

    四、輸入 git clone,而後粘貼在步驟 2 複製的 URL。它看起來就像以下所示,用你 GitHub 的用戶名代替 YOUR-USERNAME:

    $ git clone https://github.com/YOUR-USERNAME/Spoon-Knife

    五、按下 回車鍵 ,你的本地克隆就建立了。

    $ git clone https://github.com/YOUR-USERNAME/Spoon-Knife Cloning into `Spoon-Knife`... remote: Counting objects: 10, done. remote: Compressing objects: 100% (8/8), done. remove: Total 10 (delta 1), reused 10 (delta 1) Unpacking objects: 100% (10/10), done.

    如今,你已經有了針對你 fork 的 Spoon-Knife 倉庫的本地克隆代碼!

    第三步:經過配置 Git 來同步你 fork 的原始 Spoon-Knife 倉庫

    當你 fork 一個項目是爲了提出更改這個原始的倉庫,你能夠配置 Git 將原始的或者 upstream 的變化更改到你本地。

    一、在 GitHub 上,定位到 octocat/Spoon-Knife 倉庫。

    二、在這個倉庫頁面的右側邊欄,點擊複製圖標複製這個倉庫的 URL。

    複製圖標複製你 fork 的 URL

    三、打開 Terminal 命令(針對 Mac 用戶)或提示命令行(Windows 和 Linux 用戶)。

    四、更改到你在步驟 2(建立一個本地)建立的你的 fork 的本地的目錄。

    1. 回到根目錄,只輸入 cd
    2. 輸入 ls,列出當前目錄的文件和文件夾。
    3. 輸入 cd 目錄名」進入你輸入的目錄下。
    4. 輸入 cd .. 回到上一目錄。

    五、輸入 git remove -v,按下回車鍵,你將會看到你的 fork 當前配置的遠程倉庫:

    $ git remote -v origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch) origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)

    六、輸入 git remote add upstream,而後粘貼你在步驟 2 複製的 URL 並按下回車鍵。它看起來以下所示:

    $ git remote add upstream https://github.com/octocat/Spoon-Knife.git

    七、驗證你 fork 裏新指明的這個 upstream 倉庫,再次輸入 git remote -v。你將會看到你 fork 的 URL 做爲原始的地址,而原始的倉庫的 URL 做爲 upstream。

    $ git remote -v origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch) origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push) upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch) upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

    如今,你能夠保持你的 fork 與 upstream 的倉庫的同步,利用幾個 Git 命令。想知道更多信息,請參閱 Syncing a fork

    檢索其餘倉庫來 Fork

    每一個公開的倉庫均可以被 fork,因此你能夠搜索你感興趣的項目並 fork 它!

    Explore GitHub 是一個大的平臺,可讓你找到感興趣的項目。常常訪問這個頁面去關注最新和最酷的東西。

    Explore GitHub

    Follow 一我的

    GitHub 一個很強大的特性就是能夠看到其餘人在從事或者與什麼相關的工做。

    當你在 GitHub 上跟蹤了某些人以後,你就會在你的面板裏面收到他們活動的動態通知。你能夠在他們的頁面上,點擊Follow 按鈕。

    Watch 一個項目

    在某些狀況下,你能夠須要實時跟蹤一個特別項目的動態,這和跟蹤一個用戶比較相似,只是關注點僅僅在於該項目的事件。你能夠給這個項目發送電子郵件訂閱或者在頁面上配置通知設置。比較典型的通知好比對補丁或者問題的評論,或者僅僅是項目的一個評論。

    咱們的朋友 Octocat 有一個叫作 Hello World 的項目,咱們想去查看。

    當你在項目頁面的時候,你會發現頁面頂部有一個 watch 按鈕,點擊它。

    watch

    恭喜,你關注了這個 Hello World 項目。若是 Octocat 更新了這個項目,你將會在你的控制面板收到改動的通知。

    GitHub for Windows

    安裝

    一、從 windows.github.com 下載最新版本的 GitHub。

    二、當你開啓軟件時,你能夠選擇用你的 GitHub 帳戶登陸,或者新建一個帳戶。

    選擇用你的 GitHub 帳戶登陸,或者新建一個帳戶

    三、在左側,你能夠看到你的 GitHub 帳戶,同時你也能看到你所在組的其餘(用戶)。 點擊一個用戶名,你將看到哪些倉庫是可用的,點擊 clone 將把對應倉庫克隆到你的電腦。

    點擊 clone 將把對應倉庫克隆到你的電腦

    四、另外,你能夠點擊頂部的 + add 來添加一個新的本地倉庫。

    添加一個新的本地倉庫

    你準備好經過 GitHub for Windows 開始編程和同步修改。

    Fork

    直接從 GitHub 上克隆來添加庫,也是一種不錯的選擇。

    一、你能夠直接用你的我的帳戶或者你所屬的組織,經過 GitHub 來瀏覽相關項目。

    fork 倉庫

    二、你也能夠直接在 GitHub 上經過 Clone in Desktop 按鈕來進行一鍵克隆。

    Clone in Desktop

    提交到本地

    你在本地更新了數據,須要先提交到本地倉庫:

    一、點擊你須要同步的庫的名稱。

    二、你將看到一個表單,列舉了你最新的變更。增添一個提交日誌(另外能夠選擇增長一個描述),而後提交。

    windows-commit-local

    同步遠程倉庫

    當有新的本地提交記錄時,上圖中的 in sync 按鈕會被點亮,而且文字變成 sync,只須要點擊 sync 按鈕,就同步到了 GitHub 上的遠程倉庫。

    GitHub for Mac

    安裝

    一、從 mac.github.com 下載最新版本的 GitHub。

    二、當你開啓軟件時,你能夠選擇用你的 GitHub 帳戶登陸,或者新建一個帳戶。

    選擇用你的 GitHub 帳戶登陸,或者新建一個帳戶

    三、在左側,你能夠看到你的 GitHub 帳戶,同時你也能看到你所在組的其餘(用戶)。 點擊一個用戶名,你將看到哪些倉庫是可用的,點擊 clone 將把對應倉庫克隆到你的電腦。

    點擊 clone 將把對應倉庫克隆到你的電腦

    四、另外,你能夠點擊頂部的 + add 來添加一個新的本地倉庫。

    添加一個新的本地倉庫

    你準備好經過 GitHub for Mac 開始編程和同步修改。

    Fork

    直接從 GitHub 上克隆來添加庫,也是一種不錯的選擇。

    一、你能夠直接用你的我的帳戶或者你所屬的組織,經過 GitHub 來瀏覽相關項目。

    fork 倉庫

    二、你也能夠直接在 GitHub 上經過 Clone in Desktop 按鈕來進行一鍵克隆。

    Clone in Desktop

    提交到本地

    你在本地更新了數據,須要先提交到本地倉庫:

    一、點擊你須要同步的庫的名稱。

    二、你將看到一個表單,列舉了你最新的變更。增添一個提交日誌(另外能夠選擇增長一個描述),而後點擊 Commit and Sync master,提交修改到本地倉庫並同時同步到遠程倉庫。

    mac-commit-local

    同步遠程倉庫

    當有新的本地提交記錄時,右上角的 Sync 按鈕會點亮,點擊它,就同步到了 GitHub 上的遠程倉庫。

相關文章
相關標籤/搜索