天天看點

repo安裝與簡單使用一、概述二、安裝三、簡單使用

一、概述

​ 當一個大的項目需要拆分成很多的子項目,或者說一個軟體系統拆分成多個子系統。 每一個子項目或者子系統都對應一個git repository。這種需求在實際項目當中是很常見的,有的可能就直接寫一個shell腳本來實作同時拉各個代碼倉庫的動作,但這樣做難免笨拙。 特别是要做系統級别的整體分支或版本釋出時,就不太友善,是以這裡就可以使用repo來進行管理,像Android這麼大的項目也都是通過repo來進行管理的。

二、安裝

這裡以Ubuntu為例來說明。

  • 第一步: 建立repo安裝目錄
mkdir ~/bin
或者,可以建立一個隐藏檔案夾,這樣避免被誤操作删除, 在正常使用ls指令的時候,
也不會在home目錄下看到這個檔案件(對應的後續步驟中的~/bin 修改為~/.bin)

mkdir ~/.bin

           
  • 第二步:下載下傳repo
wget https://storage.googleapis.com/git-repo-downloads/repo -P ~/bin/
或者
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

           
  • 第三步: 改變執行權限并設定環境變量(就好比“安裝”)
chmod a+x ~/bin/repo
export PATH=~/bin:$PATH

最後設定環境變量這一句,最好是添加到  ~/.bashrc 檔案中的最末尾位置,
這樣就可以自動設定好repo的環境變量。
           

當你執行完以上三個步驟之後,如果能通路Google的網站的話,就可以正常使用repo了。但咱們這邊如果不翻牆的話,顯然是沒法通路的,在使用repo init的時候,就會出現如下的錯誤:

Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle

是以這裡還需要第四步:

  • 第四步: 設定REPO_URL環境變量
如第三步一樣,在~/.bashrc 檔案的最末尾添加如下内容:
export REPO_URL=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/

這裡使用的是清華大學的鏡像源
           

經過這四步就可以正常的使用repo了。

三、簡單使用

一般來說repo比較常用的指令有如下幾個:

  • repo init
repo init -u <URL> [<OPTIONS>]
 
 -u  指定repo倉庫(即manifest倉庫)的url位址, 後面[<OPTIONS>]就是可選的指令參數:
 
Manifest options:
-m :在manifest倉庫中選擇一個xml檔案,如果沒有設定,就使用default.xml

-b:選擇一個maniest倉庫中的一個特殊的分支

repo Version options:(一般來說幾乎不會使用這下面的這些選項)
--repo-url:設定repo的版本庫位址。

--repo-branch:設定需要檢出的分支。

--no-repo-verify:設定不要對repo的裡程碑簽名進行嚴格的驗證。

--mirror:隻在repo第一次初始化的時候使用,建立本地鏡像
 
 
           
  • repo sync
repo sync
預設同步xml檔案中定義的所有倉庫,也可以單獨指定sync哪個或哪些倉庫,如下: 
repo sync name1  name2 name3  ... 

除此之外還有如下選項:
-j : 多任務,一般8核心可以開到16任務,過多會起反作用
-c: 隻下載下傳目前分支代碼
-d: 讓工程回退到manifest指定的版本
-f: 如果某個工程同步失敗,繼續同步

           
  • repo start
repo start BRANCH_NAME PROJECT_NAME
建立分支,以上指令就是 給倉庫‘PROJECT_NAME’建立名為‘BRANCH_NAME’的本地分支,
如果需要給repo管理的所有倉庫建立本地分支,其指令為:

repo start BRANCH_NAME --all

此指令會更新manifest xml檔案中的資訊給對應的遠端分支 建立相應的本地分支
           
  • repo status
repo status  [project list] 

顯示目前工作目錄的狀态或指定工程名或者工程路徑的狀态
           

更多詳細的指令,可以問度娘,或者使用help參數檢視

繼續閱讀