Git已經成爲程序員必備技能之一,而GitHub作爲作流行的Git倉庫託管平臺,其不只提供Git倉庫託管,仍是一個很是棒的技術人員社交平臺,能夠經過開源的項目進行協做、交流,是如今優秀的工程師必須嫺熟運用的。php
本套教程從 GitHub 的歷史入手,介紹 Git 安裝、建立倉庫、Fork、社會化、命令行開發,到最後的圖形化工具的使用。html
學習完本教程,將不只掌握 GitHub 命令行使用方法,也會學會圖形化使用方法。git
Git 是一個優秀的分佈版本控制系統。版本控制系統能夠保留一個文件集合的歷史記錄,並能回滾文件集合到另外一個狀態(歷史記錄狀態)。另外一個狀態能夠是不一樣的文件,也能夠是不一樣的文件內容。在一個分佈版本控制系統中,每一個人都有一份完整的源代碼(包括源代碼全部的歷史記錄信息),並且能夠對這個本地的數據進行操做。分佈版本控制系統不須要一個集中式的代碼倉庫。程序員
GitHub 是一個面向開源及私有軟件項目的託管平臺,由於只支持 Git 做爲惟一的版本庫格式進行託管,故名 GitHub。github
GitHub 於 2008 年 4 月 10 日正式上線,除了 Git 代碼倉庫託管及基本的 Web 管理界面之外,還提供了訂閱、討論組、文本渲染、在線文件編輯器、協做圖譜(報表)、代碼片斷分享(Gist)等功能。目前,其註冊用戶已經超過百萬,託管版本數量也是很是之多,其中不乏知名開源項目 Ruby on Rails、jQuery 等。編程
GitHub 之因此如此受歡迎,它的優點是不容忽視的:windows
GitHub 只支持 Git 格式的版本庫託管,而不像其餘開源項目託管平臺還對CVS、SVN、Hg 等格式的版本庫進行託管。GitHub 的哲學很簡單,既然 Git 是最好的版本控制系統之一(對於不少喜歡 Git 和 GitHub 的人沒有之一),沒有必要爲兼顧其餘版本控制系統而犧牲 Git 某些獨有特性。所以沒有支持其餘版本控制系統的歷史負擔,是 GitHub 成功的要素之一。瀏覽器
GitHub 對 Git 版本庫提供了完整的協議支持,支持 HTTP 智能協議、Git-daemon、SSH 協議。緩存
GitHub 提供在線編輯文件的功能,不熟悉 Git 的用戶也能夠直接經過瀏覽器修改版本庫裏的文件。ruby
將社交網絡引入項目託管平臺是 GitHub 的創舉。用戶能夠關注項目、關注其餘用戶進而瞭解項目和開發者動態。
項目的 Fork 和 Pull Request 構成 GitHub 最獨具一格的工做模式。對提交代碼的逐行評註及 Pull Request 構成 GitHub 特點的代碼審覈。
GitHub 經過私有版本庫託管、面向企業的版本庫託管和項目管理平臺、人員招聘等付費服務得到了商業上的成功,這種成功使得 GitHub 沒必要以頁面中嵌入廣告的方式維持運營,最大的受益者仍是用戶。
要想使用 GitHub 第一步固然是註冊 GitHub 帳號:
一、首先打開 https://github.com/pricing 進行註冊。
二、在打開的頁面中點擊「Sign up now」註冊,如圖 1.1 所示。
圖 1.1
三、在接下來的頁面中建立用戶名,填寫 email 和設定密碼,點擊「Create an account」按鈕建立帳戶,如圖1.2。
圖 1.2
四、選擇帳戶類型 ,這裏咱們默認選擇 「Free」 類型,點擊「Finish sign up」按鈕完成註冊,如圖 1.3。
圖 1.3
注:不一樣類型的選擇根據咱們的須要,若是存放開源項目,則免費託管;存放私有庫,則須要付費。費用以下表:
私有庫空間 | 費用 | 私有庫數量 |
---|---|---|
大 | $50/月 | 50 |
中 | $20/月 | 20 |
小 | $10/月 | 10 |
微小 | $5/月 | 5 |
免費 | $0/月 | 0 |
同步你的 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。
三、打開 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。
三、打開 Terminal 命令(針對 Mac 用戶)或提示命令行(Windows 和 Linux 用戶)。
四、更改到你在步驟 2(建立一個本地)建立的你的 fork 的本地的目錄。
cd
。ls
,列出當前目錄的文件和文件夾。cd
目錄名」進入你輸入的目錄下。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 是一個大的平臺,可讓你找到感興趣的項目。常常訪問這個頁面去關注最新和最酷的東西。
Follow 一我的
GitHub 一個很強大的特性就是能夠看到其餘人在從事或者與什麼相關的工做。
當你在 GitHub 上跟蹤了某些人以後,你就會在你的面板裏面收到他們活動的動態通知。你能夠在他們的頁面上,點擊Follow 按鈕。
Watch 一個項目
在某些狀況下,你能夠須要實時跟蹤一個特別項目的動態,這和跟蹤一個用戶比較相似,只是關注點僅僅在於該項目的事件。你能夠給這個項目發送電子郵件訂閱或者在頁面上配置通知設置。比較典型的通知好比對補丁或者問題的評論,或者僅僅是項目的一個評論。
咱們的朋友 Octocat 有一個叫作 Hello World 的項目,咱們想去查看。
當你在項目頁面的時候,你會發現頁面頂部有一個 watch 按鈕,點擊它。
恭喜,你關注了這個 Hello World 項目。若是 Octocat 更新了這個項目,你將會在你的控制面板收到改動的通知。
GitHub for Windows
安裝
一、從 windows.github.com 下載最新版本的 GitHub。
二、當你開啓軟件時,你能夠選擇用你的 GitHub 帳戶登陸,或者新建一個帳戶。
三、在左側,你能夠看到你的 GitHub 帳戶,同時你也能看到你所在組的其餘(用戶)。 點擊一個用戶名,你將看到哪些倉庫是可用的,點擊 clone 將把對應倉庫克隆到你的電腦。
四、另外,你能夠點擊頂部的 + add 來添加一個新的本地倉庫。
你準備好經過 GitHub for Windows 開始編程和同步修改。
Fork
直接從 GitHub 上克隆來添加庫,也是一種不錯的選擇。
一、你能夠直接用你的我的帳戶或者你所屬的組織,經過 GitHub 來瀏覽相關項目。
二、你也能夠直接在 GitHub 上經過 Clone in Desktop 按鈕來進行一鍵克隆。
提交到本地
你在本地更新了數據,須要先提交到本地倉庫:
一、點擊你須要同步的庫的名稱。
二、你將看到一個表單,列舉了你最新的變更。增添一個提交日誌(另外能夠選擇增長一個描述),而後提交。
同步遠程倉庫
當有新的本地提交記錄時,上圖中的 in sync 按鈕會被點亮,而且文字變成 sync,只須要點擊 sync 按鈕,就同步到了 GitHub 上的遠程倉庫。
GitHub for Mac
安裝
一、從 mac.github.com 下載最新版本的 GitHub。
二、當你開啓軟件時,你能夠選擇用你的 GitHub 帳戶登陸,或者新建一個帳戶。
三、在左側,你能夠看到你的 GitHub 帳戶,同時你也能看到你所在組的其餘(用戶)。 點擊一個用戶名,你將看到哪些倉庫是可用的,點擊 clone 將把對應倉庫克隆到你的電腦。
四、另外,你能夠點擊頂部的 + add 來添加一個新的本地倉庫。
你準備好經過 GitHub for Mac 開始編程和同步修改。
Fork
直接從 GitHub 上克隆來添加庫,也是一種不錯的選擇。
一、你能夠直接用你的我的帳戶或者你所屬的組織,經過 GitHub 來瀏覽相關項目。
二、你也能夠直接在 GitHub 上經過 Clone in Desktop 按鈕來進行一鍵克隆。
提交到本地
你在本地更新了數據,須要先提交到本地倉庫:
一、點擊你須要同步的庫的名稱。
二、你將看到一個表單,列舉了你最新的變更。增添一個提交日誌(另外能夠選擇增長一個描述),而後點擊 Commit and Sync master,提交修改到本地倉庫並同時同步到遠程倉庫。
同步遠程倉庫
當有新的本地提交記錄時,右上角的 Sync 按鈕會點亮,點擊它,就同步到了 GitHub 上的遠程倉庫。