參考 repo的用法(zz

2021-05-26 12:25:23 字數 3056 閱讀 4170

repo的用法(zz)yce平坦軟體園

wget  yce平坦軟體園

或者 yce平坦軟體園

curl > ~/bin/repo  yce平坦軟體園

用repo sync 在抓去 android source code 的時候,會經常出現一些錯誤導致 repo sync 中斷,每次都要手動開始。 可以用如下的命令,來自動重複yce平坦軟體園

$?=1; yce平坦軟體園

while [ $? -ne 0 ] ; yce平坦軟體園

do  repo sync ; yce平坦軟體園

doneyce平坦軟體園

獲取幫助:yce平坦軟體園

repo help [ command ]   //顯示command 的詳細的幫助資訊內容yce平坦軟體園

示例: repo help init 來獲取 repo init 的其他用法yce平坦軟體園

repo init -u url 用以在當前目錄安裝 repository ,會在當前目錄建立乙個目錄 ".repo"  -u 引數指定乙個url, 從這個url 中取得repository 的 manifest 檔案。   yce平坦軟體園

示例:repo init -u git:平坦軟體園

獲取的manifest檔案放在.repo目錄中。命名為manifest.xml。這個檔案的內容其實就是所有被git管理的倉庫的列表!yce平坦軟體園

可以用 -m 引數來選擇獲取 repository 中的某乙個特定的 manifest 檔案,如果不具體指定,那麼表示為預設的 namifest 檔案 (default.xml)yce平坦軟體園

repo init -u git: -m dalvik-plus.xmlyce平坦軟體園

(有諸多供我們選擇的manifest檔案,所有的manifest檔案都放在目錄.repo/manifests中,該目錄本身亦被git所管理,你可以cd進去看看)yce平坦軟體園

可以用 -b 引數來指定某個manifest 分支。yce平坦軟體園

repo init -u git: -b release-1.0yce平坦軟體園

如果不指定-b引數,那麼會預設使用master分支yce平坦軟體園

4. repo sync [project-list]yce平坦軟體園

如果是第一次執行 repo sync , 則這個命令相當於 git clone ,會把 repository 中的所有內容都拷貝到本地。 如果不是第一次執行 repo sync , 則相當於 git remote update ;  git rebase origin/branch .  repo sync 會更新 .repo 下面的檔案。 如果在merge 的過程中出現衝突, 這需要手動執行  git  rebase --continueyce平坦軟體園

5. repo update[ project-list ]yce平坦軟體園

上傳修改的** ,如果你本地的**有所修改,那麼在執行 repo sync 的時候,會提示你上傳修改的**,所有修改的**分支會上傳到 gerrit (基於web 的**review 系統), gerrit 受到上傳的**,會轉換為乙個個變更,從而可以讓人們來review 修改的**。yce平坦軟體園

6. repo diff [ project-list ]yce平坦軟體園

顯示提交的**和當前工作目錄**之間的差異。yce平坦軟體園

7. repo download  target revisionyce平坦軟體園

8. repo start newbranchname .yce平坦軟體園

建立新的branch分支。 "." 代表當前工作的branch 分支。yce平坦軟體園

9.  repo prune [project list]yce平坦軟體園

刪除已經merge 的 projectyce平坦軟體園

10. repo foreach [ project-lists] -c commandyce平坦軟體園

對每乙個 project 執行 command 命令yce平坦軟體園

12. repo forall -c yce平坦軟體園

這個命令會遍歷所有的git倉庫,並在每個倉庫執行-c所指定的命令(這個被執行的命令就不限於僅僅是git命令了,而是任何被系統支援的命令,比如:ls 、 pwd 、cp 等等的 )yce平坦軟體園

當我想通過這個命令遍歷所有的倉庫並在每個倉庫執行"git checkout . "用以將每個倉庫的改動都清除的時候,我這麼輸入命令:yce平坦軟體園

repo forall -c git checkout .yce平坦軟體園

我發現這樣根本不行。看來repo不能遍歷執行checkout這個命令。今天我終於想到了另外乙個命令"git reset --hard head" 哈哈yce平坦軟體園

repo forall -c git git reset --hard headyce平坦軟體園

yce平坦軟體園

再說乙個新發現:以前用repo forall 執行一些命令的時候,可能再遍歷到某個倉庫的時候出了問題,但是我卻苦於不知道這個倉庫到底是哪個!一直也沒有解決。今天終於找到了。。。。  關鍵時候還是要看命令自己帶的幫助手冊呀。。。yce平坦軟體園

repo help forall  用這個命令檢視下針對forall的幫助吧。說的很清楚,repo執行的時候加上-p引數就可以在遍歷到每個倉庫的時候先列印出當前的pwd,然後再繼續執行-c所指定的命令。舉例如下:yce平坦軟體園

yce平坦軟體園

repo forall -p -c git branchyce平坦軟體園

yce平坦軟體園

//該命令會遍歷所有倉庫並列印每個倉庫的分支情況,由於有了-p引數,這樣便會列印出每個倉庫的路徑!!!yce平坦軟體園

yce平坦軟體園

11. repo statusyce平坦軟體園

顯示 project 中每個倉庫的狀態,並列印倉庫名稱。

參考 repo 的用法

或者 curl 用repo sync 在抓去 android source code 的時候,會經常出現一些錯誤導致 repo sync 中斷,每次都要手動開始。可以用如下的命令,來自動重複 1 while ne 0 do repo sync done repo help command 顯示com...

Repo 命令參考文件

repo 簡化了跨多個 庫執行的流程,與 git 相輔相成。請參閱源 控制工具,了解有關 repo 和 git 之間關係的說明。如需詳細了解 repo,請參閱 repo readme。使用 repo 需遵循的格式如下 repo command options可選元素顯示在方括號 中。例如,許多命令會...

repo 命令的用法

或者 curl 用repo sync 在抓去 android source code 的時候,會經常出現一些錯誤導致 repo sync 中斷,每次都要手動開始。可以用如下的命令,來自動重複 1 while ne 0 do repo sync done repo help command 顯示com...