一: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...