Git簡介
Git是一個免費的、分布式的版本控制工具,或是一個強調了速度快的源代碼管理工具。每一個Git的工作目錄都是一個完全獨立的代碼庫,並擁有完整的歷史記錄和版本追蹤能力,不依賴於網絡和中心服務器。
Git 在管理項目時,在本地會有三個工作區域:Git 的本地數據目錄,工作目錄以及暫存區域。如下圖所示:
因此對於任何一個文件,在 Git 內都只有三種狀態:已提交(committed),已修改(modified)和已暫存(staged)。
安裝及配置Git
終端運行:
sudo apt-get install git git-core
首先去https://github.com/ 注冊一個賬戶,當然是free and opensource的用戶了。
根目錄下創建git目錄。
mkdir ~/git
初始化兩個參數:
git config --global user.name = "username"
git config --global user.email = "***@*****"
因為本機是通過ssh鏈接github的,所以先創建ssh密鑰。
看一下本機是否已經有ssh的密鑰。
cd ~/.ssh
提示沒有文件或者目錄的話說明本機還沒有創建過,繼續執行
ssh-keygen -t rsa -C "your_email@example.com"
一路Enter,在根目錄下面就會生產.ssh文件夾(隱藏,查看隱藏文件夾的話按Ctrl+H),里面有生產的密鑰文件。
用gedit打開~/.ssh/github.pub,將文件內容拷貝到剪切板,(最好用gedit,其他的工具可能出現換行空格)
回到github的頁面,點擊Acount setting,
點SSH Keys,
title隨便取,key里面把之前復制的公鑰的內容粘進去
點Add。
終端測試一下:
ssh -T git@github.com
成功連接的結果就想這樣:
如果出現
Agent admitted failure to sign using the key.
Permission denied (publickey).
執行
ssh-add
再進行連接就沒問題了。
使用git
最簡單的一種使用方式就是從github上下載別人的開源項目。
打開一個開源工程的頁面
直接點擊左上角的zip包就可以下載工程了。
更方便一些的做法是在終端運行命令來下載源碼。
終端運行:
git clone https://github.com/SimonVT/android-menudrawer.git
會自動下載整個工程到當前的目錄。
接下來要實現的是分享自己的項目到github上,並進行版本控制。
首先在github上面創建工程。
在個人主頁上點擊Responsitories選項卡的New
填寫一些信息,點Create respository
github上的項目就創建好了。
接下來從服務器下載工程及配置文件到本地。
終端運行:
mkdir ~/git/repos
cd ~/git/repos
git clone git@github.com:***/***.git
執行完畢后,repos文件夾下就拷貝好了github上的項目。
本地進行項目編輯,比如添加一個文件之后,
可以通過下面的命令來更新項目了。
git add . //往暫存區域添加已添加和修改的文件,不處理刪除的文件
git status //比較本地數據目錄與暫存區域的變化
git commit -m "commit directions" //提到代碼到本地數據目錄,並添加提交說明
有可能你和其他人改的是同一個文件,那么沖突的情況是在所難免的,那么在提交之后再獲取一下代碼,就會提示代碼沖突的文件,我們需要做的就是處理這些沖突,並再次提交:
git pull //更新代碼
根據提示修改沖突文件中的代碼
git add .
git commit -m "commit directions"
當做完以上的步驟的時候,你需要做的是把本地數據目錄的版本庫的數據同步到GitHub服務器上去
git push
提交完成之后刷新github的頁面,發現文件已經跟新好了。
在Eclipse中整合git
首先安裝git插件,在Eclispe中,
Help->Install New Software.
輸入地址
http://download.eclipse.org/egit/updates
接着一路下一步,插件就安裝好了。
在Eclipse中創建一個工程。
然后在工程上右擊->Team->Share project->git->next.
選擇Use or create repository in parent folder of project,如下圖,點finish。
執行完成之后項目文件夾下就會創建好一個.git的文件夾,倉庫就創建好了。
由於項目中的有一些文件沒有必要上傳,比如bin文件夾,需要在項目中設置好。
展開對應的項目,有小箭頭的表示需要上傳到服務器的目錄,在不想要上傳的目錄上右擊,Team->Ignoe,該目錄就會被忽略了。
下面來commit代碼到本機一下。
項目上右擊Team->commit。
選中要commit的文件,點commit,完成之后,代碼就上傳到本地的服務器了。
接下來把代碼上傳到github的服務器。
命令行中進入到項目的文件夾,運行
git remote add origin https://github.com/SilangQuan/LinearCompiler.git
再執行
git push -f
成功執行后就像這樣:
查看github的項目主頁,發現文件已經上傳好。
之后在Eclipse中修改好項目代碼之后,commit之后直接在項目上右擊Team->push就可以進行代碼提交。
上傳到github上之后,團隊中另外的成員可以通過Eclipse->File->Import->Project from Git->URI來提取工程。
在團隊開發中,通常在新的一天的開始工作之前,把最新的代碼fecth下來。
直接在項目想右擊->Team->fetch
再執行->Team->Merge.
服務器上的新文件就會添加進來了。
參考: