詳細講解Android Studio中使用Git——結合GitLab

本文已授權微信公衆號《鴻洋》原創首發,轉載請註明出處。

目錄

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 分支操作
  1. 創建分支

    點擊Android Studio頂部菜單欄上的VCS-->Git-->Branches...,如圖:

然後選擇New Branch,輸入分支的名字,例如“dev”,如圖:

點擊OK,分支dev就創建成功了,並且默認切換到該分支。重複上面的步驟可以看到當前分支顯示的是dev,如圖:
  1. 推送分支到遠程

    這時候我們在dev分支上修改內容,然後按照前面說的提交文件(步驟5.1.5),將提交的文件推送到遠程倉庫(步驟5.1.6)即可。如圖:

點擊push,然後就可以到Gitlab上看到我們剛剛推送的dev分支了,如圖:
  1. 切換分支

    dev分支上版本V1.0開發完了,需要將代碼合併到master上進行發佈。因爲當前在dev分支,所以需要先切換到master分支,點擊Android Studio頂部菜單欄上的VCS-->Git-->Branches...,打開Git Branches窗口,然後選擇本地分支欄下的master->origin/master,然後點擊Checkout。如圖:
  1. 合併分支

    第三步已經將分支切換到master了,現在進行分支合併。點擊Android Studio頂部菜單欄上的VCS-->Git-->Branches...,打開Git Branches窗口,然後選擇遠程分支欄下的origin/dev,然後點擊Merge。如圖:

這個時候到GitLab上卻發現master分支上並沒有合併到dev分支修改的內容,那是因爲剛剛只是將遠程dev分支的內容合併到本地master分支,本地master分支還沒有push到遠程,push一下就可以啦~ 如圖:

這個時候發現GitLab上master分支與dev分支是保持一致的了。然後將最新的master分支打包發佈即可!

  1. 刪除分支
    刪除本地分支:

    點擊Android Studio頂部菜單欄上的VCS-->Git-->Branches...,打開Git Branches窗口,選中本地dev分支,選擇Delete即可。如圖:

刪除遠程分支:

點擊Android Studio頂部菜單欄上的VCS-->Git-->Branches...,打開Git Branches窗口,選中遠程dev分支,選擇Delete即可。如圖:

5.4 標籤(Tag)管理

標籤一般是用於標記某個發佈的版本, 例如你發佈了版本v1.0,這個時候會打一個v1.0的Tag,主要是方便以後查看和管理某個版本的代碼。

  1. 創建標籤

    點擊Android Studio頂部菜單欄上的VCS-->Git-->Tag...,如圖:

然後填寫Tag名稱與Tag信息,點擊Create Tag即可創建本地標籤。其中Commit可填寫以前某次提交記錄的id,表示在該次提交上打Tag。如果不填表示Tag打在最新提交的commit上。如圖:
  1. 推送標籤到遠程
    點擊Android Studio頂部菜單欄上的VCS-->Git-->Push...,如圖:


然後彈出Push框,選中Push Tags,點擊Push即可推送到遠程。如圖:


最後到GitLab就可以看到剛剛創建的Tag了,如圖:


  1. checkout某個標籤的代碼

    點擊Android Studio頂部菜單欄上的VCS-->Git-->Branches...,如圖:

然後選擇Checkout Tag or Revision...,最後在彈出的Checkout框中填入Tag的名稱即可。如圖:
  1. 刪除標籤
    在Android Studio中沒找到刪除Tag的操作,所以這裏用Git命令。(有發現的小夥伴可以告訴我)

查看本地標籤:

git tag

刪除本地標籤:

git tag -d tagName

刪除遠程標籤:

git push origin :refs/tags/tagName

以上命令需要在Android Studio自帶的命令行中輸入,如圖:

希望這種圖文結合的方式大家都能看懂吧!寫的不好的地方請多交流~

項目地址:WildmaGit

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