git與github在ubuntu下的使用
來自: http://blog.csdn.net//clh604/article/details/11403065
最近開始使用git,使用了git 和 github ,從了解到使用,還是有一點距離,下面是總結的一些方法。
1、Git的安裝
我使用了ubuntu 10.04 ,默認情況下,ubuntu 中并沒有安裝,所以首先需要在系統中進行 git 的安裝。
sudo apt-get install git-core
安裝完成后,在終端中輸入 git 就可以看到相關的命令了。如果只是需要使用git來管理本地的代碼,那么現在就可以使用了。如果需要和github上的項目結合,還需要做其他的一些操作。

2、github帳號的申請
如果只是需要將github上感興趣的代碼拷貝到本地,自己進行修改使用,而不打算共享發布的話,其實不申請帳號也沒有關系,只需要 git clone 代碼到本地就可以了。本文對這種方法不做討論,畢竟使用 github 就是為了開源的目的。
首先去 github.com 上注冊一個帳號,具體的注冊流程就不贅述了。
3、在本地建立一個文件夾,然后做一些全局變量的初始化
git config --global user.name 用戶名或者用戶ID
git config --global user.email 郵箱
這兩個選項會在以后的使用過程中自動添加到代碼中。
4、創建驗證用的公鑰
這個是比較復雜和困擾大多數人的地方,因為 git 是通過 ssh 的方式訪問資源庫的,所以需要在本地創建驗證用的文件。
使用命令:ssh-keygen -C 'you email address@gmail.com' -t rsa
會在用戶目錄 ~/.ssh/ 下建立相應的密鑰文件
可以使用 ssh -v git@github.com 命令來測試鏈接是否暢通
5、上傳公鑰
在 github.com 的界面中 選擇右上角的 Account Settings,然后選擇 SSH Public Keys ,選擇新加。
Title 可以隨便命名,Key 的內容拷貝自 ~/.ssh/id_rsa.pub 中的內容,完成后,可以再使用 ssh -v git@github.com 進行測試。看到下面的信息表示驗證成功。

進行到這里,我們也可以利用github來管理我們的項目和參與開源工作了,大體上使用git分為三種方式。
管理自己的項目
這種情況是自己在本地有一些代碼,需要利用 github 來管理自己的項目,可以按照下面的步驟進行。
1、建立倉庫
在需要建立項目的文件夾中,使用 git init 進行倉庫的建立。完成后,可以看到文件家中多了一個 .git 隱藏目錄。
2、添加文件
使用 git add . 來進行初始文件的添加。這里 . 表示將文件夾下所有的文件都添加進去,我們也可以指定文件進行添加。
3、提交文件
使用 git -m commit -m 'comment' 提交,可以將編輯的內容進行提交。
通過 git show 可以看到項目的一些狀態。
這是代碼已經在本地管理了,但是本地管理完全體現不出git的優勢。
利用github托管自己的項目
1、如果需要將自己的項目托管在github.com上,首先需要創建項目。在 Dashboard 中選擇 Create New Repository,填入相關信息后,項目就創建成功了。
2、之后,會有一個如何上傳的提示,如下圖已經很詳細了。

Fork別人的項目
前面提到過,如果只是下載使用別人的代碼,通過 git clone 就可以了,當然clone的前提是項目必須是public的,私有的項目是沒辦法的。如果需要參與,可以通過fork,然后合并的方式。
1、首先需要去自己感興趣的項目中進行Fork,fork出自己的一份分支來。fork之后,一般可以看到一個ssh訪問的地址。例如:git@github.com:cocowool/userguide.git
2、復制代碼
使用 git clone git@github.com:cocowool/userguide.git userguide 可以將代碼復制到本地的 userguide 文件夾中
3、進行自己的修改,完成后請求原作者合并
git pull person master
下面是一些比較有用的命令的介紹:
# 創建一個版本庫 git init每次修改好了后,可以先將修改存入stage(快照/索引)中
git add <modified files>
修改了大量文件則使用下面這個命令批量存入
git add .
使用commit將快照/索引中的內容提交到版本庫中
git commit -m "msg"
也可以將git add與git commit用一個指令完成
git commit -a -m "msg"
將本地的git檔案與github(遠程)上的同步
git push
將github(遠程)的git檔案與本地的同步(即更新本地端的repo)
git pull
例如,pull指令其實包含了fetch(將變更復制回來)以及merge(合并)操作
git pull git://github.com/tom/test.git
另外版本控制系統的branch功能也很有意思,若同時修改bug,又要加入新功能,可以fork出一個branch:一個專門修bug,一個專門加入新功能,等到穩定后再merge合并
git branch bug_fix # 建立branch,名為bug_fix git checkout bug_fix # 切換到bug_fix git checkout master #切換到主要的repo git merge bug_fix #把bug_fix這個branch和現在的branch合并
若有remote的branch,想要查看并checkout
git branch -r # 查看遠程branch git checkout -b bug_fix_local bug_fix_remote #把本地端切換為遠程的bug_fix_remote branch并命名為bug_fix_local
還有其它可以查看repo狀態的工具
git log #可以查看每次commit的改變 git diff #可以查看最近一次改變的內容,加上參數可以看其它的改變并互相比較 git show #可以看某次的變更
若想知道目前工作樹的狀態,可以輸入
git status</pre>