首先嘚瑟一下,上一篇博客成爲了開源中國代碼託管的「幫助」教程,有興趣的能夠在空間裏面找一下。習慣使用eclipse作開發,中途也聽別人說其餘的IDE更好怎麼的,去嘗試了一下,以爲仍是eclipse好,畢竟是IBM出品的。 java
之前使用svn作代碼管理,以爲不錯,後來使用了開源中國的git代碼託管,以爲很贊,可是都是簡單的提交、提交,根本沒有用其餘功能,只是基本一下修改,太大材小用了。有一天忽然想嘗試一下分支啊、標籤啊什麼的(聽說git就是在這些方面比svn好的),但是網上資料太少了,並且大多數都是命令行的,特別是分支、標籤的推送,找不到操做方法,有也只是命令行,最後實在國外的一個網站上找到(曲折中在youtube上看的抓屏)。eclipse用的人不少吧,用egit插件的人也不少吧,但是怎麼一搜都會教人安裝、提交變動呢,怎麼沒有更深刻的呢,因而我決定寫一篇博客,方便後來的人學習egit插件使用,因而就有了開頭說的那篇博客。可是寫的並非很全面,內容也是文字少、圖片多,雖說按照步驟來仍是能夠操做了,可是始終以爲很差,並且還有一些方面沒有涵蓋到,可是又很差改的(成爲教程了,萬一改得不如從前了呢),因此就單獨寫這篇了。 git
好了,鋪墊完了,下面開始正題。 服務器
eclipse使用的是kepler的SR1版,egit就是自帶的那個版本,要詳細的話,我就也只能把文件名貼出來了:eclipse-jee-kepler-SR1-win32.zip。 eclipse
這裏也就不說怎麼打開eclipse了吧,怎麼修改配置也就不說了吧,你們看個人eclipse和你的kepler界面有點不同,那是我配置了的(這是題外話了),你們能夠網上搜一下。egit插件是自帶的,我也就不像其餘的文章那樣說怎麼安裝egit了,下面介紹怎麼經過egit簡單的使用開源中國的代碼託管服務。 svn
首先你須要在開源中國代碼託管建一個工程(或者叫別人把你加入他的工程也能夠),反正就是你要有訪問一個託管工程的權限。 學習
在eclipse中打開名字叫作「Git Repositories」的視圖(如何打開?自行百度),而後複製項目的訪問地址,在這個視圖內Ctrl+V就能夠進行配置了,或者以也能夠找到按鈕「Clone a……」, fetch
彈出的界面如上,系統已經幫你填寫了一些東西,你只須要將你的帳號和密碼填寫好就能夠了,接下來你須要的是點擊「Next」和「Finish」而後等待(具體多久取決於網速和要下載的量)。 網站
克隆好後效果就是這樣的: spa
個人是空的項目,若是你的是已經有代碼的項目應該還要多一個文件夾,裏面放着有各類託管文件。 插件
接下來爲了演示,按照常規建一個java工程而且添加一個類,結果就像這樣:
而後一步一步的將這個項目託管到git中去:在項目上右鍵,選擇「Team->Share Project"
而後選擇git,next,而後選擇剛纔克隆的代碼庫(若是隻有一個不須要選),
最後點擊」Finish「就能夠了,接下來就是要將代碼提交到代碼庫中去,在項目上右鍵,選擇」Team-->Commit"
而後填寫好註釋勾選全部的文件,點擊提交併推送就好了
基本的使用就是這些,不斷地寫代碼、提交代碼、推送代碼,固然這是一我的開發,用git只是記錄一下代碼,之後萬一須要能夠找回,也就是我之前的用法(如今也沒好到哪裏去),可是有一點大材小用了吧,接下來講一些「高級」的。
分支的好處、分支的做用、爲何要分支?這些都不是我想說的(我想說也說不清,仍是讓那些大師去說吧),要想知道的話,請自行上網搜索哦,我接下來要說的是如何經過egit建立、使用、推送分支(刪除的話因爲是後面截的圖就放在後面來講)。
回到代碼庫的視圖,在關於代碼庫的那一行上面右擊,「Switch to--》new」(若是之後有了分支直接選就是了):
而後填寫分支的名稱,從哪裏來,用什麼方式來等,而後點擊「finish」就能夠了:
因爲勾選了「checkout……」因此分支建好以後咱們已經在使用新的分支了,
接下來改動代碼,添加一行打印,
提交改變,填寫說明:
這裏我直接提交併推送,可是後來纔想起尚未說怎麼直接推送新分支呢(我剛纔的操做已經推送了新分支),下面來補充說一下怎麼推送先新建的分支,在代碼庫的視圖上右鍵「remote--》push」而後next,出現下圖的界面
單擊「add all branches……」就會出現中間的那個「update……」了,而後finish就會把全部的分支都更新(新分支會推送出去),固然這裏偷懶了。
咱們在develop分支上更改了代碼,在master分支上是沒有變化的,切換過去看一下:
服務器呢,分支develop變化了,master也是沒有變化的:
這樣兩個分支的代碼就不同了,接下來咱們要將分支develop的代碼整合到master分支中去,這也是正常的開發中要作的,在一個分支中開發(大項目甚至更多),開發好後或者主幹上有重大變更時,進行代碼合併。
要將develop的代碼合併進master,須要首先切換分支到master,而後再代碼庫視圖上在本地的master上右鍵「merge」
而後在彈出的界面中選擇要合併進master的分支:develop:
點擊「merge」,若是有衝突的話會在代碼上有標記,到時候須要解決以後再繼續,合併以後的效果:
能夠看到我添加的那一條打印語句已經合併進來了,因爲尚未推送,因此在項目上有一個「↑1」,那麼接下來我就推送到服務器上去。在代碼庫的視圖上右鍵,「remote--》push」,而後選擇「add all branches……」,點擊finish
而後在服務器上就能夠看到master分支的代碼已經更新了:
分支的使用就是這些了,是否是很簡單、很快捷?咱們在開發中對於合併分支、提交關鍵代碼更改這樣的大事是否是須要記錄一下,雖然能夠看歷史記錄,可是還有一個更方便的東西----標籤,下面就介紹如何使用標籤。
如前面所說,標籤就是用來記錄大事件的,便於之後查看,標籤不止一種,可是我不介紹(網上有的是,並且我也說不明白),須要的能夠自行上網搜索。
建立標籤很簡單,只需在代碼庫的視圖的」Tags「上右鍵,」Create tag",
彈出的窗口中,填寫標籤的名稱、說明、基於哪一版代碼,而後finnish:
接下來要作的是將標籤推送到服務器,方法也是在代碼庫的視圖上右鍵「remote--》push」
借來點擊一次next,而後點擊「add all tag……」推送全部標籤更改,固然和分支同樣,新標籤也會推送出去
標籤使用就介紹到這裏了。
分支在完成該分支的開發後可能要刪除(不知道最佳作法是刪除仍是不刪除),把標籤有時候須要刪除(標籤原則上不刪除)。反正就是有時候要刪除,下面介紹一下刪除的作法。
爲了演示刪除標籤,特地新建一個標籤,在服務器上查看的狀況是這樣的:
刪除標籤,須要在代碼庫的視圖上右鍵「remote--》push」,而後「add all tag……」添加一欄,能夠看出來標籤在遠程的記錄是「refs/tags/*」咱們將前面的「update」單擊一下變成「delete」,悲劇出現了:後面的列都不見了,沒辦法手動填寫吧(分支還好能夠輔助生成,這個只能手動,多是標籤真的不該該刪除吧),先前咱們知道標籤在遠程的記錄是「refs/tags/*」,咱們舊照樣子寫,而後八角具體的標籤名寫上,就成了這個樣子:
而後點擊finish遠程的標籤就刪除了,固然爲了防止下一次將這個標籤推送出去,咱們須要在本地也刪除這個標籤,在標籤上右鍵「delete」:
這樣服務器上的標籤就沒有了:
再次提醒,標籤通常不刪除。
刪除分支也差很少,爲了演示我也建了一個叫作delete的分支,
刪除步驟就是在代碼庫的視圖上右鍵,「remote--》push」而後next,而後可使用嚮導生成刪除請求,不用像標籤那樣手動寫了,
方法爲:上面的上面的「Source ref:」和「Destination ref」選擇要刪除分支,而後點擊後面的「add spec」,這個時候下面記錄的是「update」咱們點擊一下這個update就會變成「delete」了,而後點擊finish遠程服務器上的分支就會被刪除,
能夠看到,服務器上已經有了delete分支,固然本地的delete分支也最好一併刪除了,方法和刪除標籤同樣,就不截圖了。
在遠程服務器上別人推送提交了一個新的分支,或者本地的代碼庫是剛克隆的而原來已有不止一個分支,那麼本地是不會有除master(默認分支)之外的分支的(remote下面有),那麼如何獲得呢?
本人嘗試過在remote下面的分支上checkout,可是代碼出來了,更改推送不出去。那麼在代碼庫的視圖上「fetch from……」呢,這樣根本就沒有提示有版本變化!
通過不斷嘗試、探索,關鍵在於在local下面沒有分支的記錄,最後終於找到,在新建分支的窗口上,選擇來源就用remote的那個分支就行,截圖就像下面: