1、eclipse和egit版本
eclipse使用的是kepler的SR1版,egit就是自帶的那個版本,要詳細的話,我就也只能把文件名貼出來了:eclipse-jee-kepler-SR1-win32.zip。
2、開始egit的簡單實用
這里也就不說怎么打開eclipse了吧,怎么修改配置也就不說了吧,大家看我的eclipse和你的kepler界面有點不一樣,那是我配置了的(這是題外話了),大家可以網上搜一下。egit插件是自帶的,我也就不像其他的文章那樣說怎么安裝egit了,下面介紹怎么通過egit簡單的使用開源中國的代碼托管服務。
首先你需要在開源中國代碼托管建一個工程(或者叫別人把你加入他的工程也可以),反正就是你要有訪問一個托管工程的權限。
在eclipse中打開名字叫做“Git Repositories”的視圖(如何打開?自行百度),然后復制項目的訪問地址,在這個視圖內Ctrl+V就可以進行配置了,或者以也可以找到按鈕“Clone a……”,
彈出的界面如上,系統已經幫你填寫了一些東西,你只需要將你的賬號和密碼填寫好就可以了,接下來你需要的是點擊“Next”和“Finish”然后等待(具體多久取決於網速和要下載的量)。
克隆好后效果就是這樣的:
我的是空的項目,如果你的是已經有代碼的項目應該還要多一個文件夾,里面放着有各種托管文件。
接下來為了演示,按照常規建一個java工程並且添加一個類,結果就像這樣:
然后一步一步的將這個項目托管到git中去:在項目上右鍵,選擇“Team->Share Project"
然后選擇git,next,然后選擇剛才克隆的代碼庫(如果只有一個不需要選),
最后點擊”Finish“就可以了,接下來就是要將代碼提交到代碼庫中去,在項目上右鍵,選擇”Team-->Commit"
然后填寫好注釋勾選所有的文件,點擊提交並推送就行了
基本的使用就是這些,不斷地寫代碼、提交代碼、推送代碼,當然這是一個人開發,用git只是記錄一下代碼,以后萬一需要可以找回,也就是我以前的用法(現在也沒好到哪里去),但是有一點大材小用了吧,接下來說一些“高級”的。
3、分支(創建、推送、使用)
分支的好處、分支的作用、為什么要分支?這些都不是我想說的(我想說也說不清,還是讓那些大師去說吧),要想知道的話,請自行上網搜索哦,我接下來要說的是如何通過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分支的代碼已經更新了:
分支的使用就是這些了,是不是很簡單、很快捷?我們在開發中對於合並分支、提交關鍵代碼更改這樣的大事是不是需要記錄一下,雖然可以看歷史記錄,但是還有一個更方便的東西----標簽,下面就介紹如何使用標簽。
4、標簽(創建、推送)
如前面所說,標簽就是用來記錄大事件的,便於以后查看,標簽不止一種,但是我不介紹(網上有的是,而且我也說不明白),需要的可以自行上網搜索。
創建標簽很簡單,只需在代碼庫的視圖的”Tags“上右鍵,”Create tag",
彈出的窗口中,填寫標簽的名稱、說明、基於哪一版代碼,然后finnish:
接下來要做的是將標簽推送到服務器,方法也是在代碼庫的視圖上右鍵“remote--》push”
借來點擊一次next,然后點擊“add all tag……”推送所有標簽更改,當然和分支一樣,新標簽也會推送出去
標簽使用就介紹到這里了。
5、分支、標簽的刪除
分支在完成該分支的開發后可能要刪除(不知道最佳做法是刪除還是不刪除),把標簽有時候需要刪除(標簽原則上不刪除)。反正就是有時候要刪除,下面介紹一下刪除的做法。
為了演示刪除標簽,特意新建一個標簽,在服務器上查看的情況是這樣的:
刪除標簽,需要在代碼庫的視圖上右鍵“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分支也最好一並刪除了,方法和刪除標簽一樣,就不截圖了。
6、使用遠程已有本地還沒有的分支
在遠程服務器上別人推送提交了一個新的分支,或者本地的代碼庫是剛克隆的而原來已有不止一個分支,那么本地是不會有除master(默認分支)以外的分支的(remote下面有),那么如何得到呢?
本人嘗試過在remote下面的分支上checkout,但是代碼出來了,更改推送不出去。那么在代碼庫的視圖上“fetch from……”呢,這樣根本就沒有提示有版本變化!
經過不斷嘗試、探索,關鍵在於在local下面沒有分支的記錄,最后終於找到,在新建分支的窗口上,選擇來源就用remote的那個分支就行,截圖就像下面:


































