eclipse的git插件安裝、配置與使用


Git是一個分布式的版本控制工具,本篇文章從介紹Git開始,重點在於介紹Git的基本命令和使用技巧,讓你嘗試使用Git的同時,體驗到原來一個版 本控制工具可以對開發產生如此之多的影響,文章分為兩部分,第一部分介紹Git的一些常用命令,其中穿插介紹Git的基本概念和原理,第二篇重點介紹 Git的使用技巧,最后會在Git Hub上創建一個開源項目開啟你的Git實戰之旅

1、Git是什么

        Git在Wikipedia上的定義:它是一個免費的、分布式的版本控制工具,或是一個強調了速度快的源代碼管理工具。Git最初被Linus Torvalds開發出來用於管理Linux內核的開發。每一個Git的工作目錄都是一個完全獨立的代碼庫,並擁有完整的歷史記錄和版本追蹤能力,不依賴 於網絡和中心服務器。

        Git的出現減輕了許多開發者和開源項目對於管理分支代碼的壓力,由於對分支的良好控制,更鼓勵開發者對自己感興趣的項目做出貢獻。其實許多開源項目 包括Linux kernel, Samba, X.org Server, Ruby on Rails,都已經過渡到使用Git作為自己的版本控制工具。對於我們這些喜歡寫代碼的開發者嘛,有兩點最大的好處,我們可以在任何地點(在上班的地鐵 上)提交自己的代碼和查看代碼版本;我們可以開許許多多個分支來實踐我們的想法,而合並這些分支的開銷幾乎可以忽略不計.

2、Git的安裝

 

二、下載安裝包

1、TortoiseGit下載地址:

http://yunpan.cn/cmMpnm8eCwmFs  訪問密碼 d932

本次下載版本——TortoiseGit-1.8.14.0-32bit.msi 

TortoiseGit 1.8.14.0 32bit

2、msysgit下載地址:

http://yunpan.cn/cmMpzyrY5subU  訪問密碼 fdaf

本次下載版本——Git-1.8.4-preview20120710.exe

 

三、安裝過程

安裝順序:首先安裝msysgit;然后安裝TortoiseGit。

1、安裝msysgit。

a、安裝包下載完成后,雙擊進入安裝界面,如下圖:

 

b、兩步next后選擇安裝目錄,如下圖:

 

c、next進入Git安裝模塊選擇,默認,如下圖:

 

d、next進入Git setup界面,“Select start menu folder”,默認,如下圖:

 

e、next進入Git Setup界面,“Adjusting your PATH environment”,選擇默認值“Use Git Bash only”,如下圖所示:

 

f、next進入Git Setup界面,“Configuring the line ending conversions”,選擇換行格式,選擇“Checkout as-is, commit Unix-style line endings”,如下圖所示:

 

g、next進入安裝界面,完成安裝,如下圖所示:

 

這個時候已經可以使用git了,打開Git Bash可以進入linux shell,可以使用git命令進行各種操作,由於大家都習慣使用圖形界面的 TortoiseSVN,下面介紹使用 TortoiseSVN的類似軟件 TortoiseGit,使用習慣相同,大家應該比較容易使用。

2、安裝TortoiseGit。

a、雙擊安裝程序,進入安裝界面,如下如所示:

 

b、兩步next進入“Choose SSH Client”選擇界面,選擇“OpenSSH,Git default SSH Client”,如下圖所示:

 

c、next進入“Custom Setup”界面,選擇默認值,如下圖所示:

 

d、next,進入“Ready to Install”界面,選擇“Install”按鈕開始安裝過程,完成安裝。如下圖所示:

 

e、至此,TortoiseGit安裝完成。在桌面空白處點擊右鍵,右鍵菜單中會加入TortoiseGit快捷鍵,如下圖所示:

 

f、選擇“Settings”,進入“Settings-TortoiseGit”界面,選擇“General”選項卡,設置本機器的git路徑,如下圖所示:

 

g、同時選擇“Network”選項卡,設置SSH路徑。SSH默認在安裝Git時就安裝了,在如下圖所示的路徑中。如下圖所示:

 

h、選擇“Git”選項卡,設置用戶名、郵箱和key。如下圖所示:

 

注:如果暫時在本地使用就只需將用戶名和郵箱添加,而“Signing key”會自動生成。

至此,TortoiseGit設置完成。

 

3、下載代碼。

a、桌面空白處右鍵,選擇git clone添加版本庫地址URL和本地文件夾。如下圖所示:

 

點擊ok即可下載一份新版本庫。

三:Eclipse集成git

 

1.集成插件

進入到插件集成功能,在輸入框寫入    git - http://download.eclipse.org/egit/updates-2.3.1/

 

 

點擊add按鈕,出現如下對話框

如果不能點擊OK按鈕,或者提示錯誤,可以從以下選擇對應的低版本,來解決

http://static.open-open.com/lib/uploadImg/20150602/20150602162459_489.png

 

點擊ok按鈕出現以下對話框

 

只選擇EGit的兩個選項即可,點擊next后等待

之后進入如下頁面 點擊next

以下界面選擇接受,點擊finish

開始安裝

之后會提示重啟eclipse,重啟即可完成集成

如果長時間未安裝成功,請點擊取消重復以上步驟即可。

2 使用插件

a 建立用戶 

window->preference

選擇team->configurantion

點擊add entry按鈕

添加用戶名

再次點擊add entry按鈕,添加email

完成后如下圖

點擊ok保存即可。

 

b 本地使用

建立自己的項目(任何項目均可,我用的為cdt插件,建立c項目)

項目右鍵選擇team->share project

選擇git

點擊next進入如下頁面

選擇復選框user or create。。。。 

點擊項目名下方按鈕會解鎖

點擊create repository按鈕

點擊finish完成配置,完成后項目顯示與最初有變化(出現問號)

第一次提交項目(創建head)

點擊項目右鍵team->commit

進入如下界面

點擊commit完成提交

如果新增文件,步驟與上述方法基本一致

 

修改 zzjzmdx.c 文件

文件標識顯示單箭頭表示與原始版本不同

右鍵可以 對 此文件提交

 

查看歷史

選擇文件右鍵

出現如下列表模塊

點擊右上角模塊的按鈕

雙擊任意版本的歷史記錄 可顯示與當前版本的對比

按住ctrl,選擇任意兩個歷史版本 右鍵 選擇 compre with each other

出現兩個歷史版本的 對比顯示

如想得到某個歷史版本,右鍵chaek out即可用歷史版本覆蓋當前版本

創建分支

最初只有一個master分支

右鍵項目team->swhich->new nranch

進入如下頁面

選擇head選項,輸入新的分支名稱

點擊finish完成創建項目自動切換到zzjzmdx分支下

如想切換分支右鍵team->swhich->master

 切換到master分支下

在某個分支下新建或修改文件 對其他分支無影響。

還可以合並分支

選擇要與本分支合並的分支

提交出現 兩個分支包含 同一文件提示窗口

選擇保留其中一個 ok 即可完成合並



四:git相關的命令

 

3、Git的基本命令    

 

     現在我們有了本地和遠程的版本庫,讓我們來試着用用Git的基本命令吧:

        git pull:從其他的版本庫(既可以是遠程的也可以是本地的)將代碼更新到本地,例如:'git pull origin master'就是將origin這個版本庫的代碼更新到本地的master主枝,該功能類似於SVN的update

        git add:是將當前更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示記入了版本歷史中,這也是提交之前所需要執行的一步,例如'git add app/model/user.rb'就會增加app/model/user.rb文件到Git的索引中

        git rm:從當前的工作空間中和索引中刪除文件,例如'git rm app/model/user.rb'

        git commit:提交當前工作空間的修改內容,類似於SVN的commit命令,例如'git commit -m "story #3, add user model"',提交的時候必須用-m來輸入一條提交信息

        git push:將本地commit的代碼更新到遠程版本庫中,例如'git push origin'就會將本地的代碼更新到名為orgin的遠程版本庫中

        git log:查看歷史日志

        git revert:還原一個版本的修改,必須提供一個具體的Git版本號,例如'git revert bbaf6fb5060b4875b18ff9ff637ce118256d6f20',Git的版本號都是生成的一個哈希值、

        上面的命令幾乎都是每個版本控制工具所公有的,下面就開始嘗試一下Git獨有的一些命令:

4、Git獨有的一些命令

       git branch:對分支的增、刪、查等操作,例如'git branch new_branch'會從當前的工作版本創建一個叫做new_branch的新分支,'git branch -D new_branch'就會強制刪除叫做new_branch的分支,'git branch'就會列出本地所有的分支

        git checkout:Git的checkout有兩個作用,其一是在不同的branch之間進行切換,例如 'git checkout new_branch'就會切換到new_branch的分支上去;另一個功能是還原代碼的作用,例如'git checkout app/model/user.rb'就會將user.rb文件從上一個已提交的版本中更新回來,未提交的內容全部會回滾

        git rebase:用下面兩幅圖解釋會比較清楚一些,rebase命令執行后,實際上是將分支點從C移到了G,這樣分支也就具有了從C到G的功能 

                                             Git使用基礎篇

        git reset:將當前的工作目錄完全回滾到指定的版本號,假設如下圖,我們有A-G五次提交的版本,其中C 的版本號是 bbaf6fb5060b4875b18ff9ff637ce118256d6f20,我們執行了'git reset bbaf6fb5060b4875b18ff9ff637ce118256d6f20'那么結果就只剩下了A-C三個提交的版本

                                              Git使用基礎篇

        git stash:將當前未提交的工作存入Git工作棧中,時機成熟的時候再應用回來,這里暫時提一下這個命令的用法,后面在技巧篇會重點講解

        git config:利用這個命令可以新增、更改Git的各種設置,例如'git config branch.master.remote origin'就將master的遠程版本庫設置為別名叫做origin版本庫,后面在技巧篇會利用這個命令個性化設置你的Git,為你打造獨一無二的 Git

        git tag:可以將某個具體的版本打上一個標簽,這樣你就不需要記憶復雜的版本號哈希值了,例如你可以使用 'git tag revert_version bbaf6fb5060b4875b18ff9ff637ce118256d6f20'來標記這個被你還原的版本,那么以后你想查看該版本時,就可以使用 revert_version標簽名,而不是哈希值了

        Git之所以能夠提供方便的本地分支等特性,是與它的文件存儲機制有關的。Git存儲版本控制信息時使用它自己定義的一套文件系統存儲機制,在代碼根目錄下有一個.git文件夾,會有如下這樣的目錄結構:

        

Git使用基礎篇

 

        有幾個比較重要的文件和目錄需要解釋一下:HEAD文件存放根節點的信息,其實目錄結構就表示一個樹型結構,Git采用這種樹形結構來存儲版本信息, 那么HEAD就表示根;refs目錄存儲了你在當前版本控制目錄下的各種不同引用(引用指的是你本地和遠程所用到的各個樹分支的信息),它有heads、 remotes、stash、tags四個子目錄,分別存儲對不同的根、遠程版本庫、Git棧和標簽的四種引用,你可以通過命令'git show-ref'更清晰地查看引用信息;logs目錄根據不同的引用存儲了日志信息。因此,Git只需要代碼根目錄下的這一個.git目錄就可以記錄完 整的版本控制信息,而不是像SVN那樣根目錄和子目錄下都有.svn目錄。那么下面就來看一下Git與SVN的區別吧

5、Git與SVN的不同

        SVN(Subversion)是當前使用最多的版本控制工具。與它相比較,Git最大的優勢在於兩點:易於本地增加分支和分布式的特性。

        下面兩幅圖可以形象的展示Git與SVN的不同之處

                                                              Git使用基礎篇

 

                                                                Git使用基礎篇

        對於易於本地增加分支,圖中Git本地和服務器端結構都很靈活,所有版本都存儲在一個目錄中,你只需要進行分支的切換即可達到在某個分支工作的效果。 而SVN則完全不同,如果你需要在本地試驗一些自己的代碼,只能本地維護多個不同的拷貝,每個拷貝對應一個SVN服務器地址。舉一個實際的例子,以前我所 在的小組使用SVN作為版本控制工具,當我正在試圖增強一個模塊,工作做到一半,由於會改變原模塊的行為導致代碼服務器上許多測試的失敗,所以並沒有提交 代碼。這時候上級對我說,現在有一個很緊急的Bug需要處理, 必須在兩個小時內完成。我只好將本地的所有修改diff,並輸出成為一個patch文件,然后回滾有關當前任務的所有代碼,再開始修改Bug的任務,等到 修改好后,在將patch應用回來。前前后后要完成多個繁瑣的步驟,這還不計中間代碼發生沖突所要進行的工作量。可是如果使用Git, 我們只需要開一個分支或者轉回到主分支上,就可以隨時開始Bug修改的任務,完成之后,只要切換到原來的分支就可以優雅的繼續以前的任務。只要你願意,每 一個新的任務都可以開一個分支,完成后,再將它合並到主分支上,輕松而優雅。

        分布式對於Git而言,你可以本地提交代碼,所以在上面的圖中,Git有利於將一個大任務分解,進行本地的多次提交,而SVN只能在本地進行大量的一 次性更改,導致將來合並到主干上造成巨大的風險。Git的代碼日志是在本地的,可以隨時查看。SVN的日志在服務器上的,每次查看日志需要先從服務器上下 載下來。我工作的小組,代碼服務器在美國,每次查看小組幾年前所做的工作時,日志下載就需要十分鍾,這不能不說是一個痛苦。后來我們遷移到Git上,利用 Git日志在本地的特性,我用Ruby編寫了一個Rake腳本,可以查看某個具體任務的所有代碼歷史,每次只需要幾秒鍾,大大方便我的工作。當然分布式並 不是說用了Git就不需要一個代碼中心服務器,如果你工作在一個團隊里,還是需要一個服務器來保存所有的代碼的。

        總結

        本篇介紹了Git的基本概念、一些常用命令和原理,大家可以嘗試動手體會一下,下一篇會重點介紹Git命令的使用技巧,Git附帶的工具,最后會在Git Hub上創建一個開源項目。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM