前言
關於代碼控制工具,一般而言,如果是開發團隊,我們常常選擇的是SVN、CVS;但是怎麼管理我們自己的代碼呢?那就用GItHub吧,這樣就可以不用自己準備一臺網絡服務器了。
介紹
GitHub是一個屬於自己的控制代碼工具,和SVN功能相似,只是這裏的服務器在網絡上。GitHub的使用也分桌面形式的客戶端和集成Eclipse的插件。如果使用客戶端請下載GitHub for Windows,這裏介紹的是Eclipse集成EGit。
創建資源庫
1、註冊一個賬號
首先,需要註冊一個賬號。https://github.com/
2、創建資源庫
在主界面的右下角有這樣一個區域,如圖。點擊New repository,創建一個新的庫。
在 Repository name 欄裏寫上新建庫的名字,如“HelloWorld”。其它可寫可不寫。等你熟悉了再去深究吧。點擊下方的 Create repository 按鈕。
Eclipse集成EGit
這裏使用的是MyEclipse10。
集成方式和SVN類似,有兩種:Eclipse中在線更新安裝和dropins中放入下載的集成包。其中第一種不建議使用,總是下載不下來。
接下來探討第二種方式:dropins。
1、 下載Eclipse集成EGit的插件,GitHubfor Eclipse
百度下很多的,這裏不細說了。
2、 安裝
a) 方式一(已驗證)
將下載的插件解壓後,複製到${MyEclipse}/MyEclipse 10/dropins目錄下。(注:Eclipse不同的版本,目錄可能不一樣,安裝插件的方式也可能不一樣。)重啓MyEclipse。
b) 方式二
在dropins文件夾下通過新建一個*.link文件,然後文件中輸入PATH=%PLUGINS_PATH%,這樣的方式,可以不用擔心以後插件過多時出現混亂,也方便移除相關插件。具體內容如下圖中所示:
其中的PATH=%PLUGINS_PATH%可以有多行,每一行代表着不同的插件路徑,實現和SVN的共存。
3、 設置
點擊 工具欄 >Preferences > Team 下多了一個 Git 的分支。修改一下“Default repository folder”的值。這是遠程的庫在本地的一個路徑。【可以選擇MyEclipse的工作目錄,當然也可以自己新建一個目錄。】建議直接設置爲MyEclipse的工作目錄,和Eclipse的其他項目一樣都在一個工作目錄維護。
上傳項目
1、 新建Java項目
接下來新建一個HelloWorld的項目吧。這個就不多說了。
2、 上傳本地
項目建好後,選中項目,右鍵 > Team > Share Project 。你會看到這樣的提示,如圖:
提示缺少環境變量 HOME 。少了咱就加唄!
右擊 我的電腦 > 屬性,點擊選項卡 高級 > 環境變量 > 系統變量 > 新建 ,如圖。在 變量名 中輸入 HOME , 變量值 建議和上面的“Defaultrepositoryfolder”一樣。點擊確定。重啓Eclipse。
重複上一步操作——ShareProject ,這次應該不會再出現上次的提示。在出現的界面中選中Git ,點擊Next 。
這裏說明一點,(一)如果希望咱們的EGit項目和Eclipse中項目位置隔離的話,點擊紅色“Create”部分,如下圖:
最後點擊 Finish即可,這樣我們的項目不會存在於Eclipse的工作目錄中。(二)如果想在Eclipse項目中保存Repository就在如下的界面中,在紅色標註的地方打√ ,選中項目後,點擊 CreateRepository ,點擊 Finish 即可,這樣,我們的項目和Eclipse的其他項目一樣,在同一個目錄。
選中項目,右鍵 > Team > Commit ,出現如下圖的界面。輸入提交的備註信息(Commit message),選中要提交的文件,點擊Commit 。
(注:如果你只是要上傳文件,那個“.project”的文件可以不提交,那是Eclipse的一個配置文件,主要作用就是表明這個文件是一個Project。當你用另一臺機器下載這些代碼時,如果有這個文件,可以用Eclipse直接導入,Import Project)
3、 提交到GitHub賬戶
選中項目,右鍵 > Team > Remote > Push ,出現如下界面。
回到GitHub的主頁面,點擊新建的庫“HelloWorld”,在瀏覽器的右側出現如下片段,如圖。在 Code 欄的最下方提供了不同的下載方式。筆者選擇 HTTPS ,複製後面的地址,粘貼到上圖中的“URI”欄裏。
User/Password就是你的GitHub的賬戶和密碼。“Storein Secure Store”打√ 。點擊 Next ,出現下圖界面。
a、 選擇 Source ref
b、 點擊 Add AllBranchesSpec
c、 Force Update 一定要選中。如果不選中,下一步就會報錯。這個錯在GitHub的Help裏可以搜索到,但我沒怎麼看懂。只知道選中“Force Update”可以避免這個錯誤。
d、 點擊 Finish
OK,到你的GitHub的主頁面看一下,HelloWorld庫裏是不是多了些文件?
4、 同步
a) 本地同步到網絡
修改項目代碼。
本地上傳:Commit(同上)。
遠程同步:Push(同上)。
GitHub主頁面查看。
b) 網絡同步到本地
在頁面上點擊 Edit 按鈕,加入如下代碼
(1)在下方的Commitmessage 欄裏輸入你的備註信息,如“Add from Web”
(2)點擊CommitChanges 按鈕
頁面上修改完成。如何更新到本地呢?
選中項目,右鍵 > Team> Pull ,你會發現代碼已經更新下來了。
5、 問題
解決The current branch is not configured for pull No valuefor key branch.master.merge found in config
1) 在本地工程目錄找到config文件(我的是在E:\rocket\rocket\.git);
2) 修改config文件內容爲:
[core]
repositoryformatversion = 0
filemode =false
logallrefupdates = true
[branch"master"]
remote =origin
merge = refs/heads/master
[remote"origin"]
url =https://github.com/androidzhaoxiaogang/rocket.git (修改爲自己的url)
fetch =+refs/heads/*:refs/remotes/origin/*
3) 再執行pull方法,發現工作ok了
下載項目
確保你的GitHub的庫中有 .project這個文件,否則Eclipse不知道它是一個Project,也就無法導入,但可以作爲普通文件下載下來。
在Eclipse的PackageExplorer欄空白處右鍵 - Import ,選擇 Git - Projects from Git ,點擊 Next
接下來選擇 URI ,點擊 Next,在下圖中的“URI”欄裏填入你的遠程庫HelloWorld的地址
User和Password欄裏填入GitHub的賬號和密碼
以下幾步都可用默認值,直接 Next
問題:
注:請確保你的GitHub上的庫名和項目名稱是一樣的。筆者的庫名爲HelloWorld,而當初在Eclipse中創建的項目名稱爲HelloWorld4GitHub。所以導致在這一步總是報錯。
解決辦法:
1、到GitHub主頁上點擊 Admin 按鈕,修改庫名稱
2、到GitHub主頁找到.project文件,修改它的<name>節點
另外還有一點想說明的,如果你的遠程庫裏面沒有 .project 文件,是不可能導入成功的。直接 Cancel 掉。到你的Eclipse的工作目中看看,是不是已經有 HelloWorld 的文件夾了。也就是說到這一步,庫文件已經被下載下來。只是因爲沒有Project的標識文件,Eclipse無法識別。
項目導進來後,發現報錯。再看它的目錄結構,你會發現沒有JDK的包。
沒有咱就加啊!
選中項目,右鍵 > BuildPath > Add Libraries ,加入你本地的JDK環境即可。
加上後,發現它還是報錯。原因是Eclipse將src這個目錄當成了普通的文件夾,而不是Java的source目錄。
怎麼將一個普通的Folder轉換成Java的SourceFolder呢?
選中src目錄,右鍵 >Build Path > Use as Source Folder。
(注:如果定義了包,即package,首先 右鍵 > Build Path> Exclude,然後再 Use as Source Folder)
OK,項目可以正常使用了。