【Github教程】史上最全github使用方法:github入門到精通

NO IMAGE

原文:http://www.eoeandroid.com/thread-274556-1-1.html?_dsign=613d1cf8

【初識Github】
首先讓我們大家一起喊一句“Hello Github”。YEAH!就是這樣。

Git是一個分散式的版本控制系統,最初由Linus Torvalds編寫,用作Linux核心程式碼的管理。在推出後,Git在其它專案中也取得了很大成功,尤其是在Ruby社群中。目前,包括Rubinius和Merb在內的很多知名專案都使用了Git。Git同樣可以被諸如Capistrano和Vlad
the Deployer這樣的部署工具所使用。同樣,eoe.cn客戶端的原始碼也託管在github上。

GitHub可以託管各種git庫,並提供一個web介面,但與其它像 SourceForge或Google Code這樣的服務不同,GitHub的獨特賣點在於從另外一個專案進行分支的簡易性。為一個專案貢獻程式碼非常簡單:首先點選專案站點的“fork”的按鈕,然後將程式碼檢出並將修改加入到剛才分出的程式碼庫中,最後通過內建的“pull
request”機制向專案負責人申請程式碼合併。已經有人將GitHub稱為程式碼玩家的MySpace。

在GitHub進行分支就像在Myspace(或Facebook…)進行交友一樣,在社會關係圖的節點中不斷的連線。

GitHub 使用 git 分散式版本控制系統,而 git 最初是 Linus Torvalds 為幫助Linux開發而創造的,它針對的是 Linux 平臺,因此 git 和 Windows 從來不是最好的朋友,因為它一點也不像 Windows。GitHub 釋出了GitHub
for Windows,為 Windows 平臺開發者提供了一個易於使用的 Git 圖形客戶端。

GitHub For Windows
GitHub for Windows 是一個 Metro 風格應用程式,整合了自包含版本的 Git,bash 命令列 shell,PowerShell 的 posh-git 擴充套件。GitHub 為 Windows 使用者提供了一個基本的圖形前端去處理大部分常用版本控制任務,可以建立版本庫,向本地版本庫遞交補丁,在本地和遠端版本庫之間同步。微軟也通過CodePlex向開發者提供 git 版本控制系統,而 GitHub 創造了一個更具有吸引力的 Windows 版本。

GitHub上已自動配置的Mac膝上型電腦,一個工具,可以轉換設定Linux或Windows機器。

BOXEN是GitHub的自動化工具,設定和配置的Mac膝上型電腦軟體開發[3]或其他型別的工作,正在使用他們的開發人員,律師,設計師,付貨人,等。我們的想法是準備系統以自動方式和作為無差錯儘可能用最少的干預工作。根據GitHub上,與一個新的開發機器上,他的Mac系統成立,並準備在30分鐘內提交程式碼。

BOXEN的基礎上收集了大量的幾十個木偶模組,使設定的各種軟體,如卡桑德拉,MongoDB中,Java軟體中,Python和Ruby開發中,節點,JS,nginx的,Skype公司,甚至MINECRAFT。雖然機器上配備了一個預配置,每個使用者都可以調整它的配置應有的作用。

【如何使用】

1.註冊賬戶以及建立倉庫

要想使用github第一步當然是註冊github賬號了。之後就可以建立倉庫了(免費使用者只能建公共倉庫),Create a New Repository,填好名稱後Create,之後會出現一些倉庫的配置資訊,這也是一個git的簡單教程。

2.安裝客戶端msysgit

github是服務端,要想在自己電腦上使用git我們還需要一個git客戶端,我這裡選用msysgit,這個只是提供了git的核心功能,而且是基於命令列的。如果想要圖形介面的話只要在msysgit的基礎上安裝TortoiseGit即可。

裝完msysgit後右鍵滑鼠會多出一些選項來,在本地倉庫裡右鍵選擇Git Init Here,會多出來一個.git資料夾,這就表示本地git建立成功。右鍵Git Bash進入git命令列,為了把本地的倉庫傳到github,還需要配置ssh key。

3.配置Git

首先在本地建立ssh key;

[mw_shl_code=java,true] $ ssh-keygen -t rsa -C “[email protected]”[/mw_shl_code]
後面的[email protected]改為你的郵箱,之後會要求確認路徑和輸入密碼,我們這使用預設的一路回車就行。成功的話會在~/下生成.ssh資料夾,進去,開啟id_rsa.pub,複製裡面的key。

回到github,進入Account Settings,左邊選擇SSH Keys,Add SSH Key,title隨便填,貼上key。為了驗證是否成功,在git bash下輸入:

[mw_shl_code=java,true]   $ ssh -T
[email protected]
   [/mw_shl_code]
如果是第一次的會提示是否continue,輸入yes就會看到:You’ve successfully authenticated, but GitHub does not provide shell access 。這就表示已成功連上github。

接下來我們要做的就是把本地倉庫傳到github上去,在此之前還需要設定username和email,因為github每次commit都會記錄他們。

[mw_shl_code=java,true]$ git config –global user.name “your name”
$ git config –global user.email “[email protected]
[/mw_shl_code]
進入要上傳的倉庫,右鍵git bash,新增遠端地址:

[mw_shl_code=java,true]    $ git remote add origin
[email protected]
:yourName/yourRepo.git    [/mw_shl_code]
後面的yourName和yourRepo表示你再github的使用者名稱和剛才新建的倉庫,加完之後進入.git,開啟config,這裡會多出一個remote “origin”內容,這就是剛才新增的遠端地址,也可以直接修改config來配置遠端地址。

4.提交、上傳

接下來在本地倉庫裡新增一些檔案,比如README,

[mw_shl_code=java,true]$ git add README
$ git commit -m “first commit”[/mw_shl_code]
上傳到github:

[mw_shl_code=java,true]$ git push origin master
[/mw_shl_code]
git push命令會將本地倉庫推送到遠端伺服器。
git pull命令則相反。

修改完程式碼後,使用git status可以檢視檔案的差別,使用git add 新增要commit的檔案,也可以用git add -i來智慧新增檔案。之後git commit提交本次修改,git push上傳到github。

5.gitignore檔案

.gitignore顧名思義就是告訴git需要忽略的檔案,這是一個很重要並且很實用的檔案。一般我們寫完程式碼後會執行編譯、除錯等操作,這期間會產生很多中間檔案和可執行檔案,這些都不是程式碼檔案,是不需要git來管理的。我們在git status的時候會看到很多這樣的檔案,如果用git add -A來新增的話會把他們都加進去,而手動一個個新增的話也太麻煩了。這時我們就需要.gitignore了。比如一般c#的專案我的.gitignore是這樣寫的:

[mw_shl_code=java,true]bin
*.suo
obj[/mw_shl_code]
bin和obj是編譯目錄,裡面都不是原始碼,忽略;suo檔案是vs2010的配置檔案,不需要。這樣你在git status的時候就只會看到原始碼檔案了,就可以放心的git add -A了。

6.tag

我們可以建立一個tag來指向軟體開發中的一個關鍵時期,比如版本號更新的時候可以建一個“v2.0”、“v3.1”之類的標籤,這樣在以後回顧的時候會比較方便。tag的使用很簡單,主要操作有:檢視tag、建立tag、驗證tag以及共享tag,這些下面的部落格中有詳細講解。

【Github的相關使用文章】
Git介紹,安裝,Git Git flow使用:http://my.eoe.cn/fogs/archive/799.html
Git 指令集:http://my.eoe.cn/iceskysl/archive/463.html
在mac上安裝git-flow過程:http://my.eoe.cn/iceskysl/archive/118.html
git fetch 的簡單用法:更新遠端程式碼到本地倉庫:http://my.eoe.cn/com360/archive/3533.html
git 如何讓單個檔案回退到指定的版本:http://my.eoe.cn/com360/archive/3351.html
如何使用Github上的開源專案:http://my.eoe.cn/fengyiyezi/archive/3427.html
Window(8)下安裝 MSysGit 、gitflow 、GitHub:http://my.eoe.cn/sunxun/archive/158.html
git 打tag:http://my.eoe.cn/xiayang6/archive/446.html
基於Github參與eoe的開源專案指南:http://my.eoe.cn/iceskysl/archive/3195.html
Git stash 使用方法:http://my.eoe.cn/sunxun/archive/190.html
Git tag的使用:http://my.eoe.cn/futurexiong/archive/1943.html
大白話講解如何給github上專案貢獻程式碼:http://my.eoe.cn/leigo/archive/3221.html

最後再推薦幾篇社群裡介紹知道github使用的帖子:

githup的使用
http://www.eoeandroid.com/thread-272837-1-1.html

Eclipse上GIT外掛EGIT使用手冊
http://www.eoeandroid.com/thread-273360-1-1.html

ubuntu下git伺服器的搭建
http://www.eoeandroid.com/thread-273167-1-1.html

git , vim , ls 全域性配置
http://www.eoeandroid.com/thread-229638-1-1.html

以上希望對大家學習起到積極的作用,一個好的程式猿勢必要學會github的使用。如果本文大家覺得還不錯,就告訴你身邊的朋友吧,如果覺得看得過去那麼就分享一下吧,如果覺得有待修改,那麼請指出不足並且給打賞幾個e幣。最後感謝百度的無私支援,以及某個人的部落格(說真的真的忘了他的地址是啥了),Hello Github。