EGit和SourceTree基本操作流程

最近github比較流行,git我理解爲分佈式的svn。
個人覺得SVN對於使用者而言比較簡單直接,操作起來也比較好理解。但是代碼保管方面不如git。
首先說一下SVN和GIT的區別:
svn是本地和服務器,然而git分爲本地代碼,本地服務器和遠程服務器。因此在操作方面不如svn那麼直接。
在這裏把git基本操作整理一下,提供自己和有需要的小夥伴參考~
Git 客戶端有好幾種,這裏講解EGit和SourceTree的基本用法。(個人比較推薦後者,最近很受人追捧的git客戶端)

git基本操作參考圖

1.EGit

首先說一下EGit個人感覺是通過SVN的思想給簡單化的git客戶端,所以這樣就不能體現git的強大所在。
個人覺得egit使用git操作有點大材小用的趕腳~而且egit本身也有一些小毛病。
如果你只是做基本的代碼更新,提交等功能可以勉強用egit,這裏還是強烈推薦使用sourcetree。

搭建eclipse git環境(聲明:博主使用的是LUNA因此eclipse自帶git插件)

由於安裝插件網上有很多帶圖片的步驟,在這裏就不嘮叨如何安裝插件了~
1、複製git項目路徑

2、Eclipse > Import > Git > Projects from Git

3、選擇克隆URL。


4、下面的Directory爲git本地服務器地址。


5.其餘的無腦next就可以了。
Eclipse 基本操作
  • Add to Index: 把要更新的文件提交到暫存區中,由git追蹤。
  • Remove from Index: 把已提交到暫存區的文件刪除。
  • Commit: 把文件提交到本地服務器。
  • Commit and Push: 把文件提交到本地服務器和遠端服務器。
  • Synchronize Workspace: 本地代碼庫和遠程服務器同步代碼。
  • Fetch from Upstream: 遠端服務器中取到本地服務器。
  • Pull: 從遠程服務器中更新本地代碼庫。

2.SourceTree

已經有一段時間流行github版本控制來分佈式管理代碼庫,客戶端也比較多,這裏將最火的客戶端工具簡單介紹一下。
sourcetree通過一個簡單的用戶界面即可使用所有的Git命令,個人認爲功能相對比較全,而且通過用戶界面來操作相對來講降低了很多學習成本。
1、在github中複製git項目路徑(同Egit)

2、Clone / New 克隆github服務端到本地。(Destination Path爲本地git服務器根路徑,個人比較推薦使用eclipse的workspace作爲根路徑,目的是方便eclipse導入工作空間中的項目)


3、雙擊orgin中的develop來checkout開發分支到本地。


4、在develop分支中創建feature分支


在本地的develop中創建feature開發後提交到遠程develop服務器步驟。

1.雙擊Branches中新建的feature分支來切換分支到feature。

2.eclipse中導入工作空間中項目來開發。

3.本地開發完後在File Status中點擊最下方的File Status 來將本地開發的代碼add到Staged files後點擊最上方的提交。

4.提交完後需要切換到develop分支先pull一下更新,之後合併feature中的代碼到本地develop,如有衝突可以外聯Beyond Compare軟件來解決衝突,最後push到遠程develop服務器。



Git Flow的流程圖

主分支

  • 主分支是所有開發活動的核心分支。所有的開發活動產生的輸出物最終都會反映到主分支的代碼中。主分支分爲master分支和development分支。

1. master分支

  • master分支上存放的應該是隨時可供在生產環境中部署的代碼(Production Ready state)。這個分支只能從其他分支合併,不能在這個分支直接修改
  • 所有在Master分支上的Commit應該Tag。

2.Develop 分支

  • 這個分支是我們是我們的主開發分支,包含所有要發佈到下一個Release的代碼,這個主要合併與其他分支,比如Feature分支。

3.Feature 分支

  • 這個分支主要是用來開發一個新的功能,一旦開發完成,我們合併回Develop分支進入下一個Release。
  • Feature分支做完後,必須合併回Develop分支, 合併完分支後一般會刪點這個Feature分支,但是我們也可以保留。

4.Release 分支

  • 當你需要一個發佈一個新Release的時候,我們基於Develop分支創建一個Release分支,完成Release後,我們合併到Master和Develop分支。
  • Release分支基於Develop分支創建,打完Release分之後,我們可以在這個Release分支上測試,修改Bug等。同時,其它開發人員可以基於開發新的Feature (記住:一旦打了Release分支之後不要從Develop分支上合併新的改動到Release分支)
  • 發佈Release分支時,合併Release到Master和Develop, 同時在Master分支上打個Tag記住Release版本號,然後可以刪除Release分支了。

5.Hotfix 分支

  • 當我們在Production發現新的Bug時候,我們需要創建一個Hotfix, 完成Hotfix後,我們合併回Master和Develop分支,所以Hotfix的改動會進入下一個Release。
  • hotfix分支基於Master分支創建,開發完後需要合併回Master和Develop分支,同時在Master上打一個tag。

3.總結

簡單整理一下基本使用git flow的流程如下:

  1. 克隆到本地服務器後再checkout遠程develop分支。在切換到本地develop分支中創建feature分支做功能開發。
  2. 開發完成後將feature中代碼提交併推送到遠程develop分支上。
  3. 在develop分支中創建release分支。並在該分支進行測試,測試完成後將修改的內容合併到master和develop分支上。(做完合併後可以刪除該分支,也可以保留)
  4. master上突然發現緊急bug需要創建補丁修改時候在master分支上創建hotfix分支修補bug,修補完成後需要將修補內容合併回master和develop分支中(建議使用pull request 進行master的合併)。

SourceTree&Git部分名詞解釋

  • 克隆(clone):從遠程倉庫URL加載創建一個與遠程倉庫一樣的本地倉庫
  • 提交(commit):將暫存文件上傳到本地倉庫(我們在Finder中對本地倉庫做修改後一般都得先提交一次,再推送)
  • 檢出(checkout):切換不同分支
  • 添加(add):添加文件到緩存區
  • 移除(remove):移除文件至緩存區
  • 暫存(git stash):保存工作現場
  • 重置(reset):回到最近添加(add)/提交(commit)狀態
  • 合併(merge):將多個同名文件合併爲一個文件,該文件包含多個同名文件的所有內容,相同內容抵消
  • 抓取(fetch):從遠程倉庫獲取信息並同步至本地倉庫
  • 拉取(pull):從遠程倉庫獲取信息並同步至本地倉庫,並且自動執行合併(merge)操作,即 pull=fetch+merge
  • 推送(push):將本地倉庫同步至遠程倉庫,一般推送(push)前先拉取(pull)一次,確保一致
  • 分支(branch):創建/修改/刪除分枝
  • 標籤(tag):給項目增添標籤
  • 工作流(Git Flow):團隊工作時,每個人創建屬於自己的分枝(branch),確定無誤後提交到master分枝
  • 終端(terminal):可以輸入git命令行

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