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安裝成功!

image

3.2 配置信息

在上圖命令行中輸入你的用戶名與郵箱

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

命令中的 --global 參數表示你這臺機器上所有的Git倉庫都會使用這個配置。

3.3 Android Studio中配置Git

在Android Studio中點擊Settings-->Version Control --> Git,然后在Path To Git executable上輸入你剛剛安裝Git的位置,最后點擊Test按鈕出現Git executed successfully說明配置成功,如下圖:

image

4 GitLab使用

4.1 注冊賬號

這里說下注冊賬號的時候需要注意的事項。
如果注冊賬號的時候提示如下錯誤

there was an error with the reCAPTCHA,please solve the reCAPTCHA again

那是因為注冊時需要驗證碼驗證,就是reCAPTCHA,是一個圖形驗證碼。但是這個驗證碼需要翻Q才能看得到,否則你一直都注冊不了。如圖:

image

4.2 GitLab賬戶配置SSH Keys

4.2.1 首先需要檢查你電腦是否已經有 SSH Keys

在Git Bash 客戶端,輸入如下代碼:

$ cd ~/.ssh
$ ls

如下說明已經存在,存在就可以忽略步驟4.2.2,直接進入步驟4.2.3

image
4.2.2 創建一個 SSH Keys

在Git Bash 客戶端,輸入如下代碼:

$ ssh-keygen -t rsa -C "your_email"

然后根據提示進行相應操作,如下圖所示:
第一個Enter表示Keys存儲的位置,默認按回車鍵即可。第二個和第三個Enter表示Push文件的時候要輸入的密碼,不需要密碼就默認按回車鍵即可,然后出現如圖底部信息就說明創建成功了!

image
4.2.3 GitLab配置SSH Keys

進入上圖所示存儲 id_rsa.pub 的文件夾拷貝該文件中的內容,然后登錄你的GitLab賬號,點擊網頁右上角的頭像-->Settings,點擊左邊菜單欄的 SSH Keys 進入頁面添加 SSH key。如下操作:

image
image

4.3 創建項目

在GitLab網站點擊導航條上的 “+” 即可進入創建項目的頁面,然后根據提示填寫相應信息,如下圖:

image
image
  • Project path:項目路徑
  • Project name:項目名稱
  • Project description (optional):項目描述(可選項)
  • Visibility Level:可見登記,Private表示私有的,只有你自己或者組內的成員能訪問,Internal表示所有登錄的用戶,Public表示公開的,所有人都可以訪問。

創建完成后是這樣的:

image

5 Android Studio中使用Git

5.1 將項目上傳到GitLab

本地已創建好的項目為WildmaGit

5.1.1 配置忽略文件

Android Studio創建項目后會自動生成.gitignore文件,這個文件可以用來忽略那些不用加入到倉庫的文件。項目根目錄下與module目錄下都會生成該文件,如下:

image

一般情況下我們只需要將項目根目錄下的/.idea/workspace.xml與/.idea/libraries改成.idea即可,其他沒有特殊要求就用默認的。如下:

修改前:

image

修改后:

image
5.1.2 初始化本地Git倉庫

點擊Android Studio頂部菜單欄上的VCS-->Import into Version Control-->Create Git Repository,如圖:

image

然后選擇需要初始化的項目根目錄,如圖:

image

初始化之后發現文件名由原來的白色變成了紅色,這表示文件已經被git跟蹤了,但是并沒有添加到倉庫中。如圖:

image
5.1.3 將本地Git倉庫已與遠程倉庫進行關聯

打開項目文件夾,在該文件夾中打開Git Bash。輸入如下命令后就代表本地Git倉庫已與遠程倉庫進行關聯了。

git remote add origin git@gitlab.com:wildma/WildmaGit.git

具體步驟見下圖:

image
image

其中 git@gitlab.com:wildma/WildmaGit.git 為我們項目的遠程地址,可以到我們前面創建項目中復制,如下:

image
5.1.4 添加文件

選中項目的根目錄,點擊Android Studio頂部菜單欄上的VCS-->Git-->Add...,如下圖:

image

添加文件后發現文件名由原來的紅色變成了綠色,說明已經將文件添加進倉庫了。如下圖:

image
5.1.5 提交文件

每次提交前需要先更新項目,原因是如果是多人合作的項目,需要先將遠程倉庫中他人提交的最新代碼更新到本地倉庫。如圖:

image

然后選中Merge,點擊OK,如果本地代碼與遠程代碼有沖突就會彈出沖突提示,根據需求Merge即可,如圖:

image

Update后就可以提交文件了,選中項目的根目錄,點擊Android Studio頂部菜單欄上的VCS-->Git-->Commit Directory...,如圖:

image

然后會彈出如下提交框,這里可以選擇你要提交的文件和填寫提交信息,如圖:

image

提交文件后發現文件名由原來的綠色又變成了最開始的白色,說明已經將文件提交上倉庫了。如圖:

image
5.1.6 將提交的文件推送到遠程倉庫

選中項目的根目錄,點擊Android Studio頂部菜單欄上的VCS-->Git-->Push...,如下圖:

image

然后會彈出如下推送框

image

點擊Push后,就可以在GitLab上看到剛剛推送的內容了。如下圖:

image

5.2 從GitLab上clone項目

首先到GitLab上復制項目的地址,如圖:

image

然后點擊Android Studio頂部菜單欄上的VCS-->Checkout from Version Control-->Git ,如圖:

image

最后填寫相應的信息即可,如下圖:

  • Git Repository URL:填寫剛剛復制的項目地址
  • Parent Directory:項目路徑
  • Directory Name:項目文件夾名稱
image

點擊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...,如圖:

    image

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

image
image

點擊OK,分支dev就創建成功了,并且默認切換到該分支。重復上面的步驟可以看到當前分支顯示的是dev,如圖:

image
  1. 推送分支到遠程

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

    image
image

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

image
  1. 切換分支

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

    image
  2. 合并分支

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

    image

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

image

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

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

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

    image

刪除遠程分支:

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

image

5.4 標簽(Tag)管理

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

  1. 創建標簽

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

    image

然后填寫Tag名稱與Tag信息,點擊Create Tag即可創建本地標簽。其中Commit可填寫以前某次提交記錄的id,表示在該次提交上打Tag。如果不填表示Tag打在最新提交的commit上。如圖:

image
  1. 推送標簽到遠程
    點擊Android Studio頂部菜單欄上的VCS-->Git-->Push...,如圖:

    image

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

image

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

image
  1. checkout某個標簽的代碼

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

    image

然后選擇Checkout Tag or Revision...,最后在彈出的Checkout框中填入Tag的名稱即可。如圖:

image
image
  1. 刪除標簽
    在Android Studio中沒找到刪除Tag的操作,所以這里用Git命令。(有發現的小伙伴可以告訴我)

查看本地標簽:

git tag

刪除本地標簽:

git tag -d tagName

刪除遠程標簽:

git push origin :refs/tags/tagName

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

image

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

項目地址:WildmaGit

原文鏈接:http://www.lxweimin.com/p/059ed1e01229

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。