本文已授權微信公衆號《鴻洋》原創首發,轉載請註明出處。
目錄
1 前言
以前項目版本管理工具一直用的都是SVN,現在換成Git,並且項目託管平臺使用的是GitLab。雖然經常用GitHub,但是卻很少使用到分支,因爲都是自己在寫,也不用開發版與發佈版、打Tag那些,所以這篇文章主要講下GitLab與Git的使用。這篇文章還是會按我以前的寫作風格,寫的通俗易懂,並且全程自己操作一遍,目的是爲了初學者也能看懂。
2 簡介
- Git:Git是一個開源的分佈式版本控制系統,可以有效、高速的處理從很小到非常大的項目版本管理。簡單說,它就是一個管理項目版本的工具。
- GitLab:GitLab 是一個用於倉庫管理系統的開源項目,使用Git作爲代碼管理工具,並在此基礎上搭建起來的web服務。簡單說,GitLab的性質是和GitHub一樣的,都是用來存儲項目的倉庫。
3 準備Git
3.1 安裝Git
下載地址:http://git-scm.com/download/
安裝步驟:雙擊安裝,按默認選項一路下去即可。
安裝完成後,在開始菜單裏找到“Git”-->“Git Bash”,出現如下圖,就說明Git安裝成功!
3.2 配置信息
在上圖命令行中輸入你的用戶名與郵箱
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
命令中的 --global 參數表示你這臺機器上所有的Git倉庫都會使用這個配置。
3.3 Android Studio中配置Git
在Android Studio中點擊Settings-->Version Control --> Git,然後在Path To Git executable上輸入你剛剛安裝Git的位置,最後點擊Test按鈕出現Git executed successfully說明配置成功,如下圖:4 GitLab使用
4.1 註冊賬號
這裏說下注冊賬號的時候需要注意的事項。
如果註冊賬號的時候提示如下錯誤
there was an error with the reCAPTCHA,please solve the reCAPTCHA again
那是因爲註冊時需要驗證碼驗證,就是reCAPTCHA,是一個圖形驗證碼。但是這個驗證碼需要翻Q才能看得到,否則你一直都註冊不了。如圖:
4.2 GitLab賬戶配置SSH Keys
4.2.1 首先需要檢查你電腦是否已經有 SSH Keys
在Git Bash 客戶端,輸入如下代碼:
$ cd ~/.ssh
$ ls
如下說明已經存在,存在就可以忽略步驟4.2.2,直接進入步驟4.2.3
4.2.2 創建一個 SSH Keys
在Git Bash 客戶端,輸入如下代碼:
$ ssh-keygen -t rsa -C "your_email"
然後根據提示進行相應操作,如下圖所示:
第一個Enter表示Keys存儲的位置,默認按回車鍵即可。第二個和第三個Enter表示Push文件的時候要輸入的密碼,不需要密碼就默認按回車鍵即可,然後出現如圖底部信息就說明創建成功了!
4.2.3 GitLab配置SSH Keys
進入上圖所示存儲 id_rsa.pub 的文件夾拷貝該文件中的內容,然後登錄你的GitLab賬號,點擊網頁右上角的頭像-->Settings,點擊左邊菜單欄的 SSH Keys 進入頁面添加 SSH key。如下操作:4.3 創建項目
在GitLab網站點擊導航條上的 “+” 即可進入創建項目的頁面,然後根據提示填寫相應信息,如下圖:- Project path:項目路徑
- Project name:項目名稱
- Project description (optional):項目描述(可選項)
- Visibility Level:可見登記,Private表示私有的,只有你自己或者組內的成員能訪問,Internal表示所有登錄的用戶,Public表示公開的,所有人都可以訪問。
5 Android Studio中使用Git
5.1 將項目上傳到GitLab
本地已創建好的項目爲WildmaGit
5.1.1 配置忽略文件
Android Studio創建項目後會自動生成.gitignore文件,這個文件可以用來忽略那些不用加入到倉庫的文件。項目根目錄下與module目錄下都會生成該文件,如下:一般情況下我們只需要將項目根目錄下的/.idea/workspace.xml與/.idea/libraries改成.idea即可,其他沒有特殊要求就用默認的。如下:
修改後:
5.1.2 初始化本地Git倉庫
點擊Android Studio頂部菜單欄上的VCS-->Import into Version Control-->Create Git Repository,如圖: 然後選擇需要初始化的項目根目錄,如圖: 初始化之後發現文件名由原來的白色變成了紅色,這表示文件已經被git跟蹤了,但是並沒有添加到倉庫中。如圖:5.1.3 將本地Git倉庫已與遠程倉庫進行關聯
打開項目文件夾,在該文件夾中打開Git Bash。輸入如下命令後就代表本地Git倉庫已與遠程倉庫進行關聯了。
git remote add origin [email protected]:wildma/WildmaGit.git
具體步驟見下圖:
其中 [email protected]:wildma/WildmaGit.git 爲我們項目的遠程地址,可以到我們前面創建項目中複製,如下:
5.1.4 添加文件
選中項目的根目錄,點擊Android Studio頂部菜單欄上的VCS-->Git-->Add...,如下圖: 添加文件後發現文件名由原來的紅色變成了綠色,說明已經將文件添加進倉庫了。如下圖:5.1.5 提交文件
每次提交前需要先更新項目,原因是如果是多人合作的項目,需要先將遠程倉庫中他人提交的最新代碼更新到本地倉庫。如圖: 然後選中Merge,點擊OK,如果本地代碼與遠程代碼有衝突就會彈出衝突提示,根據需求Merge即可,如圖: Update後就可以提交文件了,選中項目的根目錄,點擊Android Studio頂部菜單欄上的VCS-->Git-->Commit Directory...,如圖: 然後會彈出如下提交框,這裏可以選擇你要提交的文件和填寫提交信息,如圖: 提交文件後發現文件名由原來的綠色又變成了最開始的白色,說明已經將文件提交上倉庫了。如圖:5.1.6 將提交的文件推送到遠程倉庫
選中項目的根目錄,點擊Android Studio頂部菜單欄上的VCS-->Git-->Push...,如下圖: 然後會彈出如下推送框 點擊Push後,就可以在GitLab上看到剛剛推送的內容了。如下圖:5.2 從GitLab上clone項目
首先到GitLab上覆制項目的地址,如圖: 然後點擊Android Studio頂部菜單欄上的VCS-->Checkout from Version Control-->Git ,如圖:最後填寫相應的信息即可,如下圖:
- Git Repository URL:填寫剛剛複製的項目地址
- Parent Directory:項目路徑
- Directory Name:項目文件夾名稱
點擊clone後,項目就clone下來了!
5.3 分支管理
5.3.1 分支策略
在實際開發中,我們會用到很多分支。這裏說下各分支的作用。
- master分支:最穩定的分支,保存需要發佈的版本,不在該分支上做任何開發。
- dev分支:開發分支,保存最新的代碼,平時開發就在該分支上。當某個版本開發完成後就合併到master分支,然後在master分支進行版本發佈。
- bug分支:用來修復bug的分支,一般是線上版出現bug的時候,從master分支創建一個新的bug分支進行bug修復,修復完成合併到master分支和dev分支(保證master分支與dev分支同步),然後刪除該bug分支。
實際開發中我主要用到這三個分支,當然每個人都不同,有些人還會細分到功能分支,預發分支。其中master分支與dev分支都需要推送到遠程,爲了其他成員能共同開發,bug分支則放在本地即可,你自己修復完bug刪掉即可。
5.3.2 分支操作
-
創建分支
點擊Android Studio頂部菜單欄上的VCS-->Git-->Branches...,如圖:
-
推送分支到遠程
這時候我們在dev分支上修改內容,然後按照前面說的提交文件(步驟5.1.5),將提交的文件推送到遠程倉庫(步驟5.1.6)即可。如圖:
-
切換分支
dev分支上版本V1.0開發完了,需要將代碼合併到master上進行發佈。因爲當前在dev分支,所以需要先切換到master分支,點擊Android Studio頂部菜單欄上的VCS-->Git-->Branches...,打開Git Branches窗口,然後選擇本地分支欄下的master->origin/master,然後點擊Checkout。如圖:
-
合併分支
第三步已經將分支切換到master了,現在進行分支合併。點擊Android Studio頂部菜單欄上的VCS-->Git-->Branches...,打開Git Branches窗口,然後選擇遠程分支欄下的origin/dev,然後點擊Merge。如圖:
這個時候發現GitLab上master分支與dev分支是保持一致的了。然後將最新的master分支打包發佈即可!
-
刪除分支
點擊Android Studio頂部菜單欄上的VCS-->Git-->Branches...,打開Git Branches窗口,選中本地dev分支,選擇Delete即可。如圖:
刪除本地分支:
刪除遠程分支:
5.4 標籤(Tag)管理
標籤一般是用於標記某個發佈的版本, 例如你發佈了版本v1.0,這個時候會打一個v1.0的Tag,主要是方便以後查看和管理某個版本的代碼。
-
創建標籤
點擊Android Studio頂部菜單欄上的VCS-->Git-->Tag...,如圖:
-
推送標籤到遠程
點擊Android Studio頂部菜單欄上的VCS-->Git-->Push...,如圖:
然後彈出Push框,選中Push Tags,點擊Push即可推送到遠程。如圖:
最後到GitLab就可以看到剛剛創建的Tag了,如圖:
-
checkout某個標籤的代碼
點擊Android Studio頂部菜單欄上的VCS-->Git-->Branches...,如圖:
- 刪除標籤
在Android Studio中沒找到刪除Tag的操作,所以這裏用Git命令。(有發現的小夥伴可以告訴我)
查看本地標籤:
git tag
刪除本地標籤:
git tag -d tagName
刪除遠程標籤:
git push origin :refs/tags/tagName
以上命令需要在Android Studio自帶的命令行中輸入,如圖:
希望這種圖文結合的方式大家都能看懂吧!寫的不好的地方請多交流~
項目地址:WildmaGit