可能出現的錯誤:
fatal: cannot get
如果出現這個錯誤 則unset下http 和https的**
使用下面命令,具體版本號參考前面網頁中顯示的最新版本號。
curl
> ~/bin/repo
修改執行許可權
chmod a+x ~/bin/repo
本地建立乙個工程目錄,並進去
repo init -u git: (git位址)
-b master
repo
並轉殖manifest
options: l
-u:指定乙個
url,其連線到乙個
maniest倉庫
l -m:
在manifest
倉庫中選擇乙個
xml檔案 l
-b:選擇乙個
maniest
倉庫中的乙個特殊的分支 命令
repo init
要完成如下操作: ø
完成repo
repo
指令碼只是引導程式 ø
轉殖清單庫
manifest.git (
位址來自於
-u引數)
ø 轉殖的清單庫位於
manifest.git
中,轉殖到本地
.repo/manifests.
清單.repo/manifest.xml
只是符號鏈結,它指向
.repo/manifests/default.xml ø
如果manifests
中有多個
xml檔案,
repo init
可以任意選擇其中乙個,預設選擇是
default.xml
repo sync 更新**到最新的版本
用於參照清單檔案
.repo/manifest.xml
轉殖並同步版本庫。如果某個專案版本庫尚不存在,則執行
repo sync
命令相當於執行
git clone
,如果專案版本庫已經存在,則相當於執行下面的兩條指令: l
git remote update
相當於對每乙個
remote
源執行了
fetch操作
l git rebase origin/branch
針對當前分支的跟蹤分支執行
rebase
操作。
4.建立並切換本地分支
repo start
usage: repo start [--all | ...]
剛轉殖下來的**是沒有分支的
,repo start
實際是對
git checkout –b
命令的封裝。為指定的專案或所有專案(若使用
—all
引數,以清單檔案中為設定的分支,建立特性分支。這條指令與
git checkout –b
還是有很大的區別的,
git checkout –b
是在當前所在的分支的基礎上
建立特性分支,而
repo start
是在清單檔案設定分支的基礎上建立特性分支。
options:
-h, --help 顯示幫助資訊
--all 在所有工程中都新建乙個分支
例:repo start
stable
--all
迭代器,可以在所有指定的專案中執行同乙個
shell指令
-c command,對所有專案執行乙個command命令,這個命令 相當 好用;
例:repo forall -c git status 只顯示每個工程的狀態,但是不顯示工程名 和repo status
-p 在輸出之前顯示專案名稱
例: repo forall -p -c git status 先輸出工程名之後,再執行命令
-v(—verbose) 顯示命令錯誤資訊
-e(—abort-on-errors) 中止如果命令沒有成功退出
lrepo_project:指定專案的名稱
lrepo_path:指定專案在工作區的相對路徑
lrepo_remote:指定專案遠端倉庫的名稱
lrepo_lrev:指定專案最後一次提交伺服器倉庫對應的雜湊值
lrepo_rrev:指定專案在轉殖時的指定分支,manifest裡的revision屬性
另外,如果-c後面所帶的shell指令中有上述環境變數,則需要用單引號把shell指令括起來。
例:repo forall –c 』echo $repo_project『 輸出工程名
之前git的各種命令都可以在通過這個命令在各個工程中執行。
例 merge(合併多個分支)
把所有專案多切換到master分支,執行以下指令將topic分支合併到master分支
repo forall –p –c git merge topic
例:本地每個工程都新建乙個分支並跟蹤遠端的乙個分支
repo forall -p -c git checkout -b abc —track origin/abc
例:tag(打標籤)
repo forall -p –c git tag crane-stable-1.6
例:remote(設定遠端倉庫)
repo forall -p –c 『git remote add korg
ssh:
例:本地每個工程都建立乙個git 分支
repo forall -p –c git branch crane-dev
repo forall -p –c git checkout –b crane-dev
例:所有工程中的改動全部回退
repo forall -p -c git reset --hard head
6.
repo upload
usage: repo upload [--re --cc] ...
描述:repo upload 命令是用來傳送改變到
gerrit **審核系統中去。它搜尋topic branches(當前話題分支)在本地工程中還未通過review公開,如果多個topic branches存在, repo會開啟乙個editor(編輯工具)讓使用者選擇那個分支去上傳.
repo upload 搜尋在所有工程可以上傳的改動在命令列中顯示出來,(projects 引數)工程可以指定名字或者本地工程的相對路徑或者絕對路徑,如果沒有指定,那麼會在所有工程中搜尋所有的可以上傳的改動.
如果—reviewers 或者 —cc選項被忽略啦,那些郵件會被傳送到使用者各自的列表中(those emails are added to
the respective list of users),而且電子郵件會被傳送給任何新使用者.
—reviewers 指定的必須是已經在**審核系統中註冊過的使用者,否則upload會失敗
上傳修改的** ,如果你本地的**有所修改,那麼在執行 repo sync 的時候,會提示你上傳修改的**,所有修改的**分支會上傳到 gerrit (基於web 的**review 系統), gerrit 受到上傳的**,會轉換為乙個個變更,從而可以讓人們來review 修改的**。
-t 提交當前分支名到
gerrit**評審系統
--re=reviewers, --reviewers=reviewers 讓指定的人來審核
—cc=cc 同時傳送郵件
—br=branch 分支上傳
-d, --draft 如果指定分支,upload as a draft.(像匯票一樣上傳?)
-d branch, --destination=branch, --dest=branch 上傳到指定分支等待審核
--no-verify
do not run the upload hook.(不執行upload 掛鉤)
--verify run the upload hook without prompting.不經過提示就上傳掛鉤
7.repo list
列出工程和他們專案的目錄
options:
-h, --help 檢視幫助資訊
-f, —fullpath 檢視工程的完整路徑
-n, --name-only 檢視工程的名字
-p, --path-only 檢視工程路徑名字
8.repo info
獲取manifest branch 資訊,當前分支或者是沒合併的分支
usage: repo info [-dl] [-o [-b]] [...]
options:
-h, --help show this help message and exit
-d, —diff 顯示遠端分支中的完整的資訊和提交記錄
-o, —overview 顯示所有本地記錄的概略
-b, --current-branch consider only checked out branches
-l, --local-only disable all remote operations
9.repo help
如:repo help info
Repo 的使用小結
一 安裝 建立目錄和修改環境變數 mkdir bin path bin path curl bin repo chmod a x bin repo 二 幫助 repo help查詢具體命令的幫助 repo helprepo 倉庫狀態 repo help init狀態 repo status 三 初始...
repo的使用小結(一)
repo是android為了方便管理多個git庫而開發的python指令碼。repo的出現,並非為了取代git,而是為了讓android開發者更為有效的利用git。小型 很少會用到repo,單這次開發有幸用到了,小結一下。拉取 和git的流程幾乎一致 repo inite address 建立本地庫...
repo 基本使用
一 安裝 建立目錄和修改環境變數 mkdir bin path bin path curl bin repo chmod a x bin repo 二 幫助repo help查詢具體命令的幫助 repo help repo 倉庫狀態 repo help init狀態 repo status 三 初始...