在windows下使用git用戶端,github源碼庫以及eclipse的git外掛程式-egit的使用

來源:互聯網
上載者:User

    在windows下使用git用戶端,github源碼庫以及eclipse的git外掛程式-egit的使用

 

#{

//v0.1//120314

簡單記錄

//v0.2//120316

小修改

//v0.25//120317

錯別字,病句,排版,段落分段等

//v0.29//120317-2

修正本地程式碼程式庫的理解錯誤,增加更專業描述的資源.

 

}#

 

  這段時間,公司的源碼庫從svn遷移到了github上,從svn換用git的過程經曆了一些曲折.在此先簡單記錄一下.

 

關於git與svn

  剛開始搞不明白git的區別,以為和svn差不多少,稍微使用了一下才發現區別較大.

 

svn
  首先svn是在遠端或者本地建立一個源碼資料庫,源碼和版本變更都記錄在其中.本地當前項目下會有隱藏的.svn檔案,記錄一些當前項目的元資訊,以使本地當前項目能和源碼資料庫中的資訊接駁起來.

git
  至於git比較特別,首先git會索性要求本地必須有一個源碼倉庫,把項目元資訊也記錄其中.有些人在這邊可能分不清,因為會看見兩種情況,有人會一個項目建立一個源碼倉庫,有人是用一個集中的源碼倉庫,一般來說,應該使用後者吧.而提交代碼變更,即commit即為向本地源碼庫提交.然後在遠端有一個git server,比如github,其實就是另一個源碼版本庫的所在地.這裡會有push,pull的概念,看來git更注重同步的理念.無論你在本地commit多少次,git server的源碼庫是不會變化的,此時你要做的是,將本地源碼庫和遠端源碼庫同步!這就是關鍵所在,你要使用push,將源碼庫的變更push上去.至於pull,當然是拖下來.這樣的好處顯而易見,即時沒有在網,你也可以隨時使用版本控制功能.
  但是這裡我還有一些不明白的地方,就是多人開發時,不同版本庫的同步衝突如何解決,因為實際上比svn多了一步,不知道會不會很麻煩,後續研究.

見補丁--V0.29 

 

在windows&eclipse上使用git
  windows在專業領域不愧為萬年二等公民啊,不提也罷,不提也罷 - -

  如何在eclipse裡面使用git?

  大家肯定知道,既然是eclipse,那麼會有一個外掛程式,嗯,這個傳說中的外掛程式叫做egit.
  貌似現在的eclipse已經內建了這個源,你可以直接搜這個外掛程式,或者手動的從源下載,但是eclipse並沒有給這個源一個名字,所以你添加源的話會提示你已經存在.

  你可以這樣:
 
  1 help->install new software
  2 點擊最上邊的輸入框的下面一行的"Available Software Sites"
  3 看見"type filter text"沒有? 輸入"egit",選定,edit,name咱就填個"egit"
  4 好,回來,這時候外掛程式源的下拉式功能表裡應該會有egit了,你選擇,然後把那些亂七八糟的都裝上吧,你肯定已經幹了很多次了.

  這裡要說一下,這個egit可不是一個gui而已,而是真的包含了可執行命令工具,但是這個東西仍在發展中.....對,會有點兒蛋疼.

  裝好了吧,現在你在項目上按右鍵,然後"team"裡面的功能就是git的功能了,別和svn管理的項目弄混了哦.
  基本的使用方法你可以參照這裡:
  http://jiangli.easymorse.com/?p=783

還有這裡:
http://www.open-open.com/lib/view/open1328435726296.html
這個是一系列文章,不過有的稍微過時或者不詳細,所以僅供參考,要多思考,不要怕.
比如"use or create repository in parent folder of project",我才不會這樣幹啦,比如你放到eclipse的workspace裡肯定會很亂的.找個地方集中存放我覺得不錯.

那個home變數是存放設定檔的目錄.

至於你將會遇到"ref","master","branch"神馬的,首先,我也沒搞太清楚 - -
但是,ref應該是指項目的引用,比如一個branch也是一個ref,它是一個變數,HEAD就是當前的最後一個進入倉庫的項目吧,master,顧名思義吧,也算是一個branch.

以上就是在windows上,eclipse IDE下使用git的基本套路,下面,要與github結合了 - -

-----------------------------------------------------------------------------------

首先,如果你是從svn遷移,github有一個選項,可以直接從svn庫匯入.然後,下面:

 

不要嫌冗餘
  在github的官方有一個純命令列git工具使用的教程,就是egit封裝的那個玩意,按照這個教程配置.稍微看一下基本命令的使用.
  http://help.github.com/win-set-up-git/   ,先看到Download and Install Git 這裡先.

 

傳輸協議與密鑰驗證

  然後我要說一下,貌似git傳輸預設是使用ssh(通常指ssh2)協議,當然也可以使用其他常見傳輸協議.而ssh2協議有多種驗證方式,密碼,密碼加認證,或者純認證,認證就是指非對稱式加密的密鑰啦,自己拿著私密金鑰,把公開金鑰放到server上,然後兩邊一對,server就知道是你了.
  github就是用這種私密金鑰公開金鑰大家來配對的驗證方式,當然,也有http協議的,其實是https,但是不知道是不是因為前段時間被攻擊,還是第一次上傳比較重要,反正我第一次push項目必須要用ssh2的方式,上去後才能看見https方式的連結,也許可以直接使用https.翻牆的同志們可能知道一些ssh2,不過經常跟win打交道不和linux打交道的童鞋可能會陌生,因為win根本就不原生支援ssh2.

  所以要在github上上傳你的項目,首先,你得有rsa金鑰組,嗯,eclipse本身有這個工具,但是...別用,木有hosts檔案,坑死爹了,我在這繞了一天啊,對,尼瑪還要個hosts檔案.所以,前面安裝的git bash有用了.
  把http://help.github.com/win-set-up-git/ 後面的看完吧,我來補充,linux下預設的ssh密鑰檔案貌似是在.ssh檔案夾下,win的預設位置是使用者目錄(別問俺神馬叫使用者目錄 - -,你開啟cmd看看預設路徑)的ssh檔案夾下,按照官方推薦的做完全套.

  其中最重要的是,把產生的密鑰,還有hosts檔案,拷到目前使用者目錄的ssh檔案夾下.win7和xp的使用者目錄是不一樣的.

  我沒產生hosts檔案之前,直接用egit來push遇到了

"Warning:Permanently added 'github.com,207.97.227.239' (RSA) to the list of know hosts.
Permission denied (publickey)"
這個狗屎問題,搜了很久很久沒有確切說法,stackoverflow也看了,都沒說清啊,就是因為hosts檔案的問題.

   ......

  看到"...access"之後謝天謝地吧.

  後面的命令列裡讓你配置user.name神馬的東西眼熟吧,和egit裡面的類似設定是一個意思.你用文字編輯器直接編輯設定檔都行.

 

T_T

 

然後!!

  然後,然後你終於可以在eclipse裡面使用egit的push了,先commit再push,如果本地都沒貨你沒東西push上去啊.彈出來賬戶密碼神馬的,github版本庫的位置會給你個連結,比如"git@github.com:xxbirdman/xxProject.git",這個就是個ssh2的連結,填在第一行URI,後面會幫你填充.協議也不需要你動手.

 

重點來了:
  嗯,童鞋,也許你很聰明,但是絕對記住,下面的賬戶密碼位置雖然唯寫了個git,但是可別自作多情去填上github的帳號密碼,不然你會很痛苦的,比如遇到神馬"Exception caught during execution of ls-remote command"的狗血問題,原因很簡單,github採用了純rsa的驗證方式,只要你的私密金鑰配上了公開金鑰,用公用賬戶git登入即可,絕對不需要畫蛇添足的加上帳號密碼,那樣反而會出錯,如果以後使用https的話,那就可以填上帳號密碼了,另外記得選上記住密碼,然後,跳轉,再然後,建議一般人點擊"Add All Branches Spec"吧,然後finish.這裡是讓你選擇,你要同步本地版本庫中的哪些branch上去的,每個branch都是個ref嘛,master也是一個branch嘛,HEAD,你懂的,一般人應該是都同步吧 - -
 
  這裡貌似和svn中預設常見整天念叨的branch,trunk,tag有點區別,其實也沒有本質區別啦.你把trunk和tag也看成一種branch好了.

 

對了,小烏龜也有git版,叫TortoiseGit,你懂的.

最後,感謝很多人的分享,大家也可以參考以下連結:

github的協助
http://help.github.com/

官方文檔的中譯
http://blog.csdn.net/xianqiang1/article/details/6944042

git中文魔法書//手冊啦,有耐心翻翻
https://docs.google.com/View?

id=dfwthj68_675gz3bw8kj&pli=1#_1_41281264953870145_601701371_489039059728384

Eclipse上GIT外掛程式EGIT使用手冊,這一系列文章真心不錯,再推薦一次
http://www.open-open.com/lib/view/open1328435802187.html

這是俺遇到苦逼問題時候看見的一位曾經同樣倒黴過的大哥分享的內容 T_T
http://blog.csdn.net/ddlylly/article/details/7095809

這裡有提到eclipse工具產生rsa金鑰組的一瞥
http://freewind.me/blog/20111114/578.html

http://www.cnblogs.com/babykick/archive/2011/12/01/2271299.html
http://www.lixinyang.com/2011/05/windows-eclipse-github/
http://blog.sina.com.cn/s/blog_6b8d6ed60100zndn.html

 

本來只想隨便寫一點點,結果貌似又用了差不多兩三個小時,寫得有點亂,還不是很詳細,命令列的使用也不熟悉,以後有空再補充吧,

多謝分享經驗的各位.有錯誤以及不明白的地方請大家幫忙指出來.

 

 

 

 

 

=補=丁=

 

--V0.29

補充:這裡我對於git本地程式碼程式庫的理解認識不正確,找了兩篇文章,介紹git的理念以及工作方式,供大家參考.說真的,真麻煩啊,我都想爆粗了,頭痛ing - -#

http://www.cong(菊花)ci.com/item/git-and-github-services    //菊花去掉

http://www.open-open.com/lib/view/open1328069733264.html

http://www.open-open.com/news/view/889e6

http://blog.csdn.net/yihui8/article/details/6445847

奇怪,cnblogs怎麼把(cong(菊花)ci.com列為敏感詞了?)

--

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.