Git+eclipse--day4

一:什麼是Git

       Git 是一個開源的分佈式版本控制系統,可以有效、高速的處理從很小到非常大的項目版本管理。Git 是 Linus Torvalds 爲了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。

二:Git的特點

       分佈式相比於集中式的最大區別在於開發者可以提交到本地,每個開發者通過克隆(gitclone),在本地機器上拷貝一個完整的 Git 倉庫。
       從一般開發者的角度來看,git 有以下功能:從服務器上克隆完整的 Git 倉庫(包括代碼和版本信息)到單機上、在自己的機器上根據不同的開發目的,創建分支,修改代碼、在單機上自己創建的分支上提交代碼、在單機上合併分支、把服務器上最新版的代碼 fetch 下來,然後跟自己的主分支合併等。

1:優點

       適合分佈式開發,強調個體。公共服務器壓力和數據量都不會太大。速度快、靈活。任意兩個開發者之間可以很容易的解決衝突。離線工作。

2:缺點

       資料少(起碼中文資料很少)。學習週期相對而言比較長。不符合常規思維。代碼保密性差,一旦開發者把整個庫克隆下來就可完全公開所有代碼和版本信息。因其資料的公開性,導致大型商業化工程幾乎不會使用 GIT 來託管工程版本信息(除非搭建企業私服)。

三:GitHub簡介

       平臺地址:https://github.com

       GitHub是一個面向開源及私有軟件項目的託管平臺,因爲只支持 Git 作爲唯一的版本庫格式進行託管,故名 GitHub。

       GitHub 於 2008 年 4 月 10 日正式上線,除了 git 代碼倉庫託管及基本的 Web 管理界面以外,還提供了訂閱、討論組、文本渲染、在線文件編輯器、協作圖譜(報表)、代碼片段分享(Gist)等功能。目前,其註冊用戶已經超過 350 萬,託管版本數量也是非常之多,其中不乏知名開源項目 Rubyon Rails、jQuery、python 等。
       作爲開源代碼庫以及版本控制系統,Github 擁有超過 900 萬開發者用戶。隨着越來越多的應用程序轉移到了雲上,Github 已經成爲了管理軟件開發以及發現已有代碼的首選方法。

       如前所述,作爲一個分佈式的版本控制系統,在 Git 中並不存在主庫這樣的概念,每一份複製出的庫都可以獨立使用,任何兩個庫之間的不一致之處都可以進行合併。

       在 GitHub,用戶可以十分輕易地找到海量的開源代碼。

1:註冊賬號

       請自行在 Github(https://github.com)網站中註冊。在部分企業中,開發人員是否擁有 Github 帳戶,在 Github 中是否有個人的代碼和資料發佈、發佈數量等,成爲了開發人員實力的一種評價標準。

2:創建版本倉庫

2.1:進入管理頁面

2.2:進入倉庫管理面板

2.3:提供新增倉庫信息

注意,這裏創建的是公開版本倉庫,私有版本倉庫不完全開放,大部分功能需要付費購買。

 2.4 成功創建後的頁面內容

 3:提供SSH2密鑰

3.1:創建本地密鑰

       使用 EclipseIDE 生成本地密匙文件。window->preference->general->network connections->ssh2->點擊 Generate RSA KEY->點擊Save private key 生成並保存本地密匙:

       生成後的密匙文件所在位置是:C:\${user.home}\.ssh 目錄。密匙文件名爲:id_rsa 和id_rsa.pub。其中 id_rsa.pub 文件是公鑰密匙,需要手工添加到 Github 密匙庫中。 

3.2 Github 

 進入 Github 密匙管理面板

 

創建新的 SSH 密匙

 

在 title 中輸入密匙名稱(自定義),在 key 文本域中輸入 id_rsa.pub 文件中的內容。並確認新增密匙。

 

密匙新增成功(新增密匙過程可能需要確認用戶密碼),管理面板如下:

3.3 GitHub

  在密匙管理面板中,點擊 Delete 按鈕可以刪除密匙(刪除過程可能需要輸入登錄密碼)。

4:刪除版本倉庫

進入版本庫管理面板:

選擇要刪除的版本倉庫,進入對應倉庫的 Settings 管理界面:

 

在管理界面的最末端,點擊 Delete this repository 按鈕:

在確認對話框中,輸入要刪除的版本倉庫名稱,並確認刪除

四:EGIT插件應用(Eclipse GIT插件)

1:安裝EGIT插件

Eclipse Mars2 版本,默認集成 EGIT 插件,如果需要安裝 EGIT 插件,可以使用在線安裝方式實現。

1.1:進入新插件安裝面板

1.2:   新增要安裝的插件

插件名稱自定義, 插件地址爲:

http://download.eclipse.org/egit/updates/

 

1.3:選擇要拉取的插件

2:Eclipse  訪問 GitHub  問題解決

ini 配置文件增加下述配置:ini 配置文件位置: eclipse 安裝目錄/eclipse.ini 文件。

-Dhttps.protocols=TLSv1.1,TLSv1.2

3:EGIT插件參數配置

使用 EGIT 插件,可以提前配置一些參數,爲 GIT 訪問遠程版本倉庫提供便利。

3.1:進入 Eclipse  配置面 板(Window->Preferences )

3.2:新增參數信息

常用 參數有 下述 4 個:
http.sslVerify=false 關閉 ssl 校驗。 (選填,如果未提供 SSH2 密匙必填)
http.sslVersion=tlsv1.2 定義 ssl 協議版本,Github 在最近的更新中關閉了 tlsv1.0 和 tlsv1.1
協議的訪問,不提供此參數無法訪問 Github 遠程版本倉庫 ( JDK1.8 未測試) 。
user.email=xxx@xxx
user.name=xxx

       在訪問 Github 遠程版本倉庫的時候,Github 要求必須提供用戶和電子郵箱,如果不提供上述參數,在後續操作中需要提供對應的信息,參考下圖。

4:創建本地版本倉庫

4.1  打開 GIT Repositories  管理面板

4.2:  創建本地版本倉庫

5:克隆遠程版本倉庫

此操作爲常用操作,在克隆遠程版本倉庫同時, EGIT 插件會自動創建一個本地版本倉庫與之對應。

6:增加內容

此操作就是將本地工程分享到 GIT 中,並使用 GIT 來進行版本信息管理。

7:提交內容

8:更新內容

8.1:fetch

抓取, 抓取遠程的 head 信息。從遠程倉庫中下載 head 頭信息的變更狀態。沒有下載真實的代碼變化。

8.2:pull

拉取,相當於先 fetch head 再 pull code。 先下載 head 頭的變更,再根據頭信息的變更下載真實的代碼。通常直接 pull 即可。

9:分支管理

       分支管理,是 GIT 開發中的一個非常有效的團隊開發策略。多個程序員並行開發,每程序員可以定義各自的分支,在自己的分支上開發工程。再開發結束測試完畢後,再合併到主幹工程中,一次性提交到遠程。由其他程序員使用。

9.1:創建新分支

 

 9.2:分支切換

9.3:合併分支

首先切換到 master 主幹,再執行下述操作:

9.4:刪除分支

9.4.1:刪除本地分支

 

9.4.2:刪除遠程分支

10:衝突管理

10.1:提交衝突

10.1.1:遠程代碼

10.1.2:本地代碼

10.1.3:提交

10.1.4:結果

10.2:同步

 

10.3:pull遠程代碼

 

10.4:修改內容

10.5:將修改後的內容加入索引信息

10.6:提交內容

11:拉取內容

11.1:拉取遠程工程

11.2:拉取遠程代碼

       在 Git 中,fetch 和 pull 的功能不同,fetch 是拉取遠程版本庫中的變化信息,是將遠程版本倉庫中最新版本的 heads 頭信息更新到本地版本倉庫,不包含具體的內容。pull 則是將遠程版本倉庫中的 heads 和內容都更新到本地倉庫。可用下述圖例簡單描述:

12:刪除內容

12.1:刪除代碼

12.2:刪除工程

13:忽略文件

       如果本地有若干文件或目錄不想提交到遠程。可以使用忽略的方式實現。.gitignore 文件中定義的內容,都是忽略的內容。不上傳到遠程倉庫的內容。忽略信息定義方式:

目錄 - /目錄名稱/
文件 - /文件名稱 、 /目錄名稱/文件名稱
匹配 - /前綴* 、 /*後綴 、 /*中綴*
匹配 - *.xxx 、 xxx.* 沒有‘/’的匹配,對應的是所有目錄中的有效內容。


上述配置中的‘/’代表的是工程的根目錄。修改.gitignore 文件後,需要將修改後的文件增加到索引:

提交修改後的.gitignore 文件。

保證忽略信息生效。再次提交相關內容時,會自動忽略.gitignore 文件中的配置內容。不做提交處理。

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章