1. 程式人生 > >gitlub及git和eclipse使用教程

gitlub及git和eclipse使用教程

目錄

1.登入:

1.新建組

一、基本操作

1.登入:

 

在上圖紅框區域登陸自己的賬戶密碼。

2.修改密碼:

登入成功後點擊左側工具欄目Profile Settings ------ Password -------修改密碼-------Save password。

Tips:

點選GitLab的logo,可以從任何介面回到本頁

 

二、專案管理

可以根據需要選擇新建專案、新建組合新建使用者

1.新建專案

如下圖所示新建專案:

 

建立時可以選擇在自己使用者下建立或者某個群組內建立

 

 

a. 專案名稱,專案名稱可以為字母、數字、空格、下劃線、中劃線和英文點號組

成,且必須以字母或數字開頭,不能使用中文

b. 專案描述

c.可見性(庫類別)

私有庫:只有被賦予許可權的使用者可見

內部庫:登入使用者可以下載

公開庫:所有人可以下載

根據實際情況填寫完各項之後,點選建立專案,專案建立成功

 

提示通過SSH方式拉取推送專案程式碼必須要匯入SSH key,這個稍後再介紹。

專案地址有HTTP和SSH兩種方式-------可傳送給開發人員下載和初始化專案

2.編輯或刪除專案

 

主頁左邊選單欄--------Project

右上角的齒輪狀按鈕--------編輯專案

 

右下角刪除專案。

或者點選Admin Area

 

三、使用者管理(管理員使用,非管理員跳過此步驟)

1.新建使用者

點選頂端的Admin Area按鈕

 可以進入管理頁面

 

1) 姓名(可以是中文)

2) 使用者名稱(可以為字母、數字、空格、下劃線、中劃線和英文點號組成,且必須以字母或數字開頭,不能使用中文)

3) 郵箱地址(首次接收密碼)

4) 建專案的數量限制

5) 是否可以建立組

6) 是否是管理員

7) 選填內容(個人聯絡方式)

2.編輯和刪除使用者

 

四、組管理(管理員使用,非管理員跳過此步驟)

1.新建組

選單欄Group------New Group

 

1). 組名稱,組名稱可以為字母、數字、空格、下劃線、中劃線和英文點號組成,

且必須以字母或數字開頭,不能使用中文

2). 組詳情

2.編輯或刪除組

 

在此頁面可以編輯和刪除組

3.新增組成員

 

新增組使用者並賦予相應的許可權。

4.修改成員的許可權(owner使用者操作)

點選左側的Groups,然後點選當然的組。

 

然後點選左側Members選單進入。

修改想要修改的使用者的許可權並save

5.從組管理新增專案

從組裡新增專案可免去再新增專案使用者的步驟,因此我們選擇從組內新增工程。

點選左側Group,然後點選齒輪按鈕。

 

 然後點選Project,接著點New Project 

按步驟填寫最後點選Create Project建立專案。

此時組內成員都能看到這個專案已經被建立。

五、許可權說明

Guest(匿名使用者) - 建立專案、寫留言薄

Reporter(報告人)- 建立專案、寫留言薄、拉專案、下載專案、建立程式碼片

Developer(開發者)- 建立專案、寫留言薄、拉專案、下載專案、建立程式碼

片段、建立合併請求、建立新分支、推送不受保護的分支、移除不受保護的分

支 、建立標籤、編寫wiki

Master(管理者)- 建立專案、寫留言薄、拉專案、下載專案、建立程式碼片

段、建立合併請求、建立新分支、推送不受保護的分支、移除不受保護的分

支 、建立標籤、編寫wiki、增加團隊成員、推送受保護的分支、移除受保護

的分支、編輯專案、新增部署金鑰、配置專案鉤子

Owner(所有者)- 建立專案、寫留言薄、拉專案、下載專案、建立程式碼片

段、建立合併請求、建立新分支、推送不受保護的分支、移除不受保護的分

支 、建立標籤、編寫wiki、增加團隊成員、推送受保護的分支、移除受保護

的分支、編輯專案、新增部署金鑰、配置專案鉤子、開關公有模式、將專案轉

移到另一個名稱空間、刪除專案

六、Gitlab在eclipse中的使用

1.生成SSH key 

我們用的是eclipse自帶的生成key的工具,windows->preferences->General->Network Connections->SSH2,點選SSH2。

 

在key management處點生成RSAkey 

後面輸入key的說明和密碼,密碼也可以空著。點save private key. 把生成的key檔案存到使用者目錄的.ssh目錄下。(像第一張圖中SSH2 Home指定的目錄)

會生成兩個檔案,一個id_rsa是私鑰,一個id_rsa.pub是公鑰。

2.釋出公鑰到伺服器

用記事本開啟剛剛儲存的id_rsa.pub檔案,能看到如圖所示的類似內容,將他們複製下來。

用你的使用者登入到GitLab, Profile Settings->ssh keys->add ssh key. 給使用者新增全域性的公鑰檔案。

 

把剛剛複製的內容貼上到頁面上,add key。

 

3.相關的具體操作

1)在Eclipse中新建一個專案,此處新建測試用的專案是GitPro1

2)新建GitPro1專案的倉庫

在專案上右鍵 -> Team ->Share Project -> Git -> Next

 

Create->自定義倉庫名稱->Finish

 

在D:\Program Files\Git\GitPro1目錄下可以看到GitPro1倉庫了

 

同時,eclipse中的project也建立git版本控制,此時未建立分支,處於NO-HEAD狀態

 

資料夾中的”?”表示此資料夾處於untracked狀態,這樣就成功建立Git倉庫。

3)配置.gitignore來過濾不需要上傳的檔案

這種情況針對帶maven依賴的工程!!(因為.classpath .settings .project | clone下來時會有影響造成無法下載jar包依賴)

普通工程暫時不用過濾檔案

在工程實現過程中,會生成一些中間檔案,或者在專案中的部分檔案是不需要進行版本管理的。對於這些檔案應該對於Git來講是透明的。Git提供這種功能,可以自己指定哪些檔案可以不被管理。具體方法是在版本管理的根目錄下(與.Git資料夾同級)建立一個  .gitignore(gitignore是隱藏檔案,所以前面有個點)

右鍵工程->new file->輸入.gitignore 生成.gitignore檔案

 

在介面上輸入.classpath .settings .project 儲存。可以在倉庫檢視的Working Directory中看到這個檔案。此時你commit時會自動過濾掉這三類檔案。若本來工程下面就有這個檔案裡面如果有/bin/類似的文字不要刪除,直接換行新增你需要過濾的檔案。

 

這個在專案裡看不到,可以倉庫檢視的work

4)將專案Commit到本地倉庫

嘗試提交GitPro1專案,右鍵->Team->Commit

提示驗證資訊,將自己使用者名稱和郵箱填寫進去,點OK. 下次就不需要填寫了。

 

點選 Commit。我們就把上圖中status選中的檔案提交到本地git庫中了。這些檔案從此受git的版本監控了。並且提交註釋為version1.0(這個以後用到,當作狀態標記)。

接下來開啟git repositories檢視(Window->show view->other->Git->Git Repositories->OK)

此時,來看看git repositories檢視:

 

這個就是我們在本地git倉庫的結構。

5)修改檔案後commit

當我們修改GitTest.java的時候。檔案狀態會發生改變

 

選中修改過的檔案。右擊Team->commit. 提交時註釋資訊為”version 1.1”。

提交完成後,git狀態如圖

 

6)新增新檔案後的處理

 

SecondFile.java是我新建的類,“?”表示這個檔案未受git庫版本監控。要想加入監控:選中這個檔案,右擊 team > add to index. 之後commit。

7)檢視歷史提交記錄

專案->Team -> Show in history 可以檢視版本歷史提交記錄

 

8)Push到Gitlab

將本地的git庫中的內容push到伺服器端的遠端倉庫

 

專案->Team -> Remote -> Push填寫相關資訊後 -> next -> Add All Branches Specs ->Finish

Tips: URI在登陸後的Project欄點選,複製中間的地址。

 

填寫好後,點選next –>Add All Branches Spec->Finish.

 

完成後:

提示專案已經push到伺服器。

我們可以在Gitlab中點選Browse Files檢視已經上傳的程式碼。

 

9)使用.gitkeep來追蹤空的資料夾

Git會忽略空的資料夾。如果你想版本控制包括空資料夾,根據慣例會在空資料夾下放置.gitkeep檔案。其實對檔名沒有特定的要求。一旦一個空資料夾下有檔案後,這個資料夾就會在版本控制範圍內。

10)clone 在GitLab中已有專案

為演示,先刪除剛剛在eclipse裡建立的GitPro1專案

客戶端Eclipse上,開啟git Repositories檢視。點選 . clone a git Repository.

 

輸入資訊後點擊next,我們會看到服務端git庫的分支master出現了

Next

點選Finish. 我們的clone就完成了。

 

現在在自己的工作空間建立了伺服器端的專案。

克隆伺服器端倉庫後,會在本地建立一個一樣的倉庫,稱本地倉庫。

如果clone帶有過濾檔案的maven+git工程時,clone下來時是無法直接到工作空間的。需要從倉庫視圖裡匯入。

當clone下來帶有過濾後的Maven+git工程時在git倉庫檢視右鍵—>Import projects—>Import as general project—>next—>finish,此時eclipse工作空間就匯入了專案,但現在是沒有maven的,右鍵工程—>Configure—>Convert to maven project,現在工作空間的工程就是一個完整的maven+git工程了。

11)新建自己的分支進行開發並push到遠端分支

Team->Switch To->New Branch

 

此時,剛剛clone下來的分支已經切換成自己的分支,我們就能在自己的分支上任意開發了

在自己分支上開發,修改檔案並commit提交到本地倉庫。

 

接下來要push到遠端的新建分支

Team->Remote->push->Next->Add Spec->Next->Finish

 

成功將自己修改後的程式碼提交到遠端新建的自己的分支

 

現在在Gitlab上就能看到兩個分支,一個master主分支(保護狀態,developer無法push)和yjx新建分支

 

12)新建分支與master分支進行合併請求(Merge Request)

登陸自己的Gitlab賬戶。點選Project或進入工程點選Branch會看到建立合併請求的標籤:

 .

點選Merge Request

 

此時,管理員登陸Gitlab後點左側Projects->GitPro1->Merge Requests

 

管理員任何新建分支提交的程式碼,審閱後沒有問題的情況下點選Accept Merge Request

 

此時我們看到合併到master分支後的情況

 

Tips: matser使用者可以直接push到master分支。Developer無法直接push到受保護的master分支,必須先建立自己的分支,再提交,推送,請求合併。

13)退回歷史版本

遠端倉庫和本地倉庫都存放有我們提交的每一個歷史版本。

開啟工程的歷史,在要退回的歷史版本上右鍵reset->Hard->yes,工程就退回歷史版本了

 

14)推送衝突的解決

對於master使用者來說:

假定咱們clone到本地的工程分支保持不變是1.1版本,但是伺服器遠端分支已經被更新到1.3版本了,此時就會產生衝突,無法提交:

 

此時我們要將工程pull到最新 team->pull將遠端的修改pull到本地git庫:

點ok。你回發現工作空間的專案出現衝突的標誌。

此時,選擇衝突的檔案GitTest.java右擊,Team > merge tool .

選擇第二項,ok。

根據比較修改左邊的檔案,也就是你工作空間中的檔案。解決完衝突之後。儲存。如圖狀態。

 

現在你可以提交這個檔案了。選中GitTest.java 右擊team > add to index .

此時工作空間中的圖示有所變化。

 

當出現灰色的雪花符號時,你就可以進行提交併 push到伺服器端。

commit 狀態

 

之後,push。

現在成功push

 

15)自建分支開發前獲取遠端master更新並與本地合併

作為developer使用者在自己的分支上先右鍵->fetch from upstream將遠端master分支的最新版本更新到本地,ok。 接著右鍵->team->merge ,如圖選擇下面遠端倉庫的master分支,Merge,選擇最新的版本,點ok,則當前自己的分支已更新到遠端master分支同步。

Merge之後當前分支已經和伺服器端遠端倉庫的master分支一致了,就可以繼續開發了。

16)自建工程push到遠端後本地git沒有遠端追蹤的解決方案

這種情況發生在我們自己建立的工程,並且在該工程下繼續開發時。本地新建工程後

 

進行commit-push,將程式碼推送到伺服器端後,會發現本地git檢視的遠端追蹤是空的,只有本地追蹤。此時,如果有人蔘與該工程,並且遠端分支修改,你需要fetch時,在IDE中時無法操作拉遠端分支的。

如何解決這個問題?我們切到git倉庫檢視,在下圖中的Remotes倉庫的小圖示上右鍵,點選Create Remote,再點選configure fetch,點ok。

然後將伺服器web端的工程URL貼上在下圖中,並填上主機地址。點finish。接下來再點選左下角的save and fetch。然後大功告成,最後一張圖中我們就看到方框中遠端追蹤已經出現了,接下來你就可以任意的fetch遠端分支了。