Git/Github的使用並與Eclipse整合

Git簡介

      Git是一個免費的、分佈式的版本控制工具,或是一個強調了速度快的源代碼管理工具。每一個Git的工作目錄都是一個完全獨立的代碼庫,並擁有完整的歷史記錄和版本追蹤能力,不依賴於網絡和中心服務器。

       Git 在管理項目時,在本地會有三個工作區域:Git 的本地數據目錄,工作目錄以及暫存區域。如下圖所示:


因此對於任何一個文件,在 Git 內都只有三種狀態:已提交(committed),已修改(modified)和已暫存(staged)。


安裝及配置Git

終端運行:
[plain] view plaincopy
  1. sudo apt-get install git git-core  

首先去https://github.com/ 註冊一個賬戶,當然是free and opensource的用戶了。


根目錄下創建git目錄。
[plain] view plaincopy
  1. mkdir ~/git  

 初始化兩個參數:
[plain] view plaincopy
  1. git config --global user.name = "username"  
  2.   
  3. git config --global user.email = "[email protected]"  

因爲本機是通過ssh鏈接github的,所以先創建ssh密鑰。

看一下本機是否已經有ssh的密鑰。
[plain] view plaincopy
  1. cd ~/.ssh  

提示沒有文件或者目錄的話說明本機還沒有創建過,繼續執行
[plain] view plaincopy
  1. ssh-keygen -t rsa -C "[email protected]"  

一路Enter,在根目錄下面就會生產.ssh文件夾(隱藏,查看隱藏文件夾的話按Ctrl+H),裏面有生產的密鑰文件。

用gedit打開~/.ssh/id_rsa.pub,將文件內容拷貝到剪切板,(最好用gedit,其他的工具可能出現換行空格)

回到github的頁面,點擊Acount setting,




SSH Keys,


title隨便取,key裏面把之前複製的公鑰的內容粘進去



Add



終端測試一下:

[plain] view plaincopy
  1. ssh -T [email protected]  

成功連接的結果就想這樣:


如果出現
[plain] view plaincopy
  1. Agent admitted failure to sign using the key.  
  2. Permission denied (publickey).  

執行
[plain] view plaincopy
  1. ssh-add  
再進行連接就沒問題了。

使用git

最簡單的一種使用方式就是從github上下載別人的開源項目。
打開一個開源工程的頁面


直接點擊左上角的zip包就可以下載工程了。
更方便一些的做法是在終端運行命令來下載源碼。
終端運行:
[plain] view plaincopy
  1. git clone https://github.com/SimonVT/android-menudrawer.git  

會自動下載整個工程到當前的目錄。

接下來要實現的是分享自己的項目到github上,並進行版本控制。

首先在github上面創建工程。
在個人主頁上點擊Responsitories選項卡的New



填寫一些信息,點Create respository


github上的項目就創建好了。

接下來從服務器下載工程及配置文件到本地。

終端運行:
[plain] view plaincopy
  1. mkdir ~/git/repos  
  2. cd ~/git/repos  
  3. git clone [email protected]:***/***.git  

執行完畢後,repos文件夾下就拷貝好了github上的項目。

本地進行項目編輯,比如添加一個文件之後,
可以通過下面的命令來更新項目了。
[plain] view plaincopy
  1. git add . //往暫存區域添加已添加和修改的文件,不處理刪除的文件  
  2. git status //比較本地數據目錄與暫存區域的變化  
  3. git commit -m "commit directions" //提到代碼到本地數據目錄,並添加提交說明  

有可能你和其他人改的是同一個文件,那麼衝突的情況是在所難免的,那麼在提交之後再獲取一下代碼,就會提示代碼衝突的文件,我們需要做的就是處理這些衝突,並再次提交:
[plain] view plaincopy
  1. git pull     //更新代碼  
  2. 根據提示修改衝突文件中的代碼  
  3. git add .  
  4. git commit -m "commit directions"  


當做完以上的步驟的時候,你需要做的是把本地數據目錄的版本庫的數據同步到GitHub服務器上去
[plain] view plaincopy
  1. git push  

或者這樣

Create a new repository on the command line

touch README.md

git init

git add README.md

git commit -m "first commit"

git remote add origin https://github.com/user_name/repository_name.git

git push -u origin master



提交完成之後刷新github的頁面,發現文件已經跟新好了。


可能遇到的問題
pull 報錯
You asked me to pull without telling me which branch you 
want to merge with, and 'branch.master.merge' in 
your configuration file does not tell me, either. Please 
specify which branch you want to use on the command line and 
try again (e.g. 'git pull <repository> <refspec>'). 
See git-pull(1) for details. 


解決方法:通過git config進行如下配置.
git remote add -f origin [email protected]:rest.git 
git config branch.master.remote origin 
git config branch.master.merge refs/heads/master

用meld來merge
在多人開發中,可能會發生代碼衝突,meld是一個圖形化代碼比對工具,可以很方便的merge
sudo pat-get install meld
git config --global diff.external meld

每次都要輸入用戶名和密碼
Linux 用戶可以使用 ‘cache’ 認證助手包來緩存認證信息,運行下面的命令來啓用憑據緩存,啓用後每次輸入密碼將保存10小時(36000秒):
git config --global credential.helper 'cache --timeout 3600'

在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的服務器。

命令行中進入到項目的文件夾,運行
[java] view plaincopy
  1. git remote add origin https://github.com/SilangQuan/LinearCompiler.git  

再執行
[plain] view plaincopy
  1. git push -f  

成功執行後就像這樣:


查看github的項目主頁,發現文件已經上傳好。


之後在Eclipse中修改好項目代碼之後,commit之後直接在項目上右擊Team->push就可以進行代碼提交。


上傳到github上之後,團隊中另外的成員可以通過Eclipse->File->Import->Project from Git->URI來提取工程。

在團隊開發中,通常在新的一天的開始工作之前,把最新的代碼fecth下來。

直接在項目想右擊->Team->fetch
再執行->Team->Merge.

服務器上的新文件就會添加進來了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章