repo倉庫配置搭建及基礎命令學習

2022-04-18 12:16:46 字數 2732 閱讀 8326

一:repo簡介

android使用git進行**管理,而repo命令列工具對git命令進行了封裝,是在git之上構建的工具(它其實是乙個python指令碼),方便管理多個git專案,從而更好地對**進行集中式管理。

repo使用過程分如下幾步:

1.執行repo init 命令,轉殖android的乙個清單庫,這個清單庫是通過xml檔案建立的版本清單庫。

2.清單庫中的manifest.xml檔案,列出了各個版本庫轉殖所需要的引數資訊;包括版本庫的位址、工作區定義的目錄結構,以及分支的對應關係。

3.執行repo sync的命令,開始同步,即分別轉殖xml檔案中的版本庫資料到本地的工作區中。

4.對各個版本庫進行切換分支操作,切換到某個分支操作提交並push到遠端。

【【【主要操作步驟見紅色字型;請確保操作如下步驟之前在gerrit.dd.net的個人賬號下配置了本地機器的ssh public key】】】

二:配置ssh config  

按如下方式在~/.ssh/config裡配置:(若沒有config檔案需要新建)

host gerrit.dd.net

hostname gerrit.dd.net

user 你的gerrit賬戶名

identityfile ~/.ssh/id_rsa

pubkeyauthentication yes

1. 確認主目錄下存在 bin/ 目錄並已包含在路徑中:mkdir ~/bin          path=~/bin:$path  

注:修改repo指令碼引數的repo_url :repo_url ='ssh:' 

四:repo和清單庫的初始化

mkdir workspace     cd workspace     repo init -u ssh: --no-repo-verify (注意:manifest倉庫位址需要研發組內給出)

命令repo init要完成如下操作:

2.轉殖建立的清單庫manifest.git(位址來自與-u引數),清單庫實際上只包含乙個default.xml檔案,這個xml檔案定義了多個版本庫和本地位址的對映關係,是repo工作的指引檔案。

3.轉殖的清單庫位於.repo/manifests.git中,本地轉殖到.repo/manifests。自己新建的git倉庫裡邊就放了個簡單的default.xml檔案:ssh: 

-u:指定乙個url,其連線到乙個maniest倉庫

-m :在manifest倉庫中選擇乙個xml檔案

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

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

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

--mirror:只在repo第一次初始化的時候使用,建立本地映象

五:同步專案

repo sync 預設同步xml檔案中定義的所有倉庫,可以單獨指定sync哪個或哪些倉庫: repo sync name1  name2

如果某個工程從未同步過,repo sync相當於git clone。所有遠端倉庫的分支都會被拷貝到本地倉庫。

如果工程已經同步過,repo sync相當於: git remote update     git rebase origin/branch

六:修改提交並push到遠端

cd進入到sync到本地的某個分支倉庫目錄,修改提交,git branch發現倉庫都是no branch狀態:push到遠端時用命令:git push origin head:master

七:repo常用命令

a .  repo init

b .  repo sync

c .  repo upload  [ project-list ] :上傳修改的** ,如果你本地的**有所修改,那麼在執行 repo sync 的時候,會提示你上傳修改的**,所有修改的**分支會上傳到 gerrit (基於web 的**review 系統), gerrit 受到上傳 的**,會轉換為乙個個變更,從而可以讓人們來review 修改的**。 

d .  repo diff  [project list]:顯示提交的**和當前工作目錄**之間的差異

e .  repo download :

f .  repo forall -c 「command」:這個命令會遍歷所有的git倉庫,並在每個倉庫執行-c所指定的命令(這個被執行的命令就不限於僅僅是git命令了,而是任何被系統支援的命令,比如:ls 、 pwd 、cp 等)

例如:repo forall –c 「echo $repo_path」     repo forall –c 「git reset –hard head」   環境變數: repo_project    repo_path   repo_remote

g .  repo prune  [project list]:  實際上是對git branch –d命令的封裝,該命令用於掃瞄專案的各個分支,並刪除已經合併的分支,

h .  repo start newbranchname [project list] :在指定工程倉庫建立乙個當前所在遠端分支的跟蹤分支,並切到跟蹤分支。

i .  repo status  [project list] :顯示當前工作目錄的狀態或指定工程名或者工程路徑的狀態。

j .  repo manifest -o default.xml -r :獲取倉庫的sha1值,並記錄在乙個新的default.xml檔案中

default.xml 示例:

<?xml version="1.0" encoding="utf-8"?>

CentOS7 搭建本地repo倉庫源

二 內網的centos操作 2.設定 etc yum.repos.d 目錄下面的各種repo檔案 內網伺服器禁止上網,無法使用各種倉庫映象。只能從別的途徑把所有的包同步下來,拷貝進內網,再建立倉庫。該命令來自於 yum utils 1.1.31 45.el7.noarch 包,該包在base源中。y...

repo安裝使用及專案配置

新增repo到環境變數 sudo mv repo bin repo repo的執行過程中,會嘗試訪問官方的git源更新自己,一般情況無法正常更新,可以將如下內容複製到你的 bashrc裡,並重啟終端模擬器 export repo url 參考 android 9.0.0 r60 的 manifest...

Docker倉庫操作及私有倉庫搭建

docker login 檢視映象 docker search 映象名 docker pull 映象名 重新給映象倉庫命名 docker tag 容器id 新名稱 docker push 映象 映象格式 使用者名稱 映象名 docker logout 預設情況下,倉庫會被建立在容器的 var lib...