Repo是一個(gè)用Python語(yǔ)言開(kāi)發(fā)的命令工作 ,可以更文件地進(jìn)行多版本庫的管理。Repo是對Git進(jìn)行了一定的封裝,簡(jiǎn)化了對多個(gè)Git版本庫的管理。對于repo管理的任何一個(gè)版本庫,都需要使用Git命令進(jìn)行操作。
每一個(gè)repo子命令都可以通過(guò)下面的命令獲得幫助:
repo help <command>
repo init子命令主要完成檢出清單版本庫(manifest.git),以及配置Git用戶(hù)名和郵件地址的工作。
repo sync子命令用于參照清單文件克隆可同步版本庫。如果某個(gè)項目版本庫尚不存在,則執行repo sync命令相當于執行g(shù)it clone。如果項目版本庫已經(jīng)存在,則相當于執行下面的兩個(gè)命令:
repo start子命令實(shí)際上是對git checkout -b命令的封裝。為指定的項目或所有項目(若使用-all參數),以清單文件中為項目認定的分支或里程碑為基礎,創(chuàng )建特性分支。特性分支的名稱(chēng)由命令的第一個(gè)參數指定。
repo start <newbranchname> [--all | <project>…]
repo status子命令實(shí)際上是對git diff-index、git diff-files命令的封裝,同時(shí)顯示暫存區的狀態(tài)和本地文件修改的狀態(tài)。
repo status [<project>…]
repo checkout子命令實(shí)際上是對git checkout命令的封裝。檢出之前由repo start創(chuàng )建的分支。
repo checkout <branchname> [<project>…]
repo branches讀取各個(gè)項目的分支列表并匯總顯示。
repo branches [<project>…]
repo upload相當于git push,但是又有很大的不同。執行repo upload不是將版本庫改動(dòng)推送到克隆時(shí)的遠程服務(wù)器,而是推送到代碼審查服務(wù)器(Gerrit)的特殊引用上。代碼審核服務(wù)器會(huì )對推送的提交進(jìn)行特處理,將新的提交顯示為一個(gè)待審核的修改集,并進(jìn)入代碼審查流程。只有當審核通過(guò)后,才會(huì )合并到正式的版本庫中。
用法如下:
repo upload [--re --cc] [<project>]...
參數:
-h, --help 顯示幫助信息。-t 發(fā)送本地分支名稱(chēng)到Gerrit代碼審核服務(wù)器。--re=REVIEWERS, --reviewers=REVIEWERS 要求由指定的人員進(jìn)行審核。-cc=CC 同時(shí)發(fā)送通知到如下郵件地址。
如果發(fā)現上傳后的代碼有問(wèn)題想重新修改,可以在本地繼續修改代碼,用git add把修改內容加到暫存區,用git commit –amend修改上一次提交,再用repo upload重新上傳修訂集。這樣上傳后不會(huì )產(chǎn)生新的提交,而是會(huì )在原有的提交中新加一個(gè)修訂集。
repo download命令主要用于代碼審核者下載和評估提交的修訂。使用repo download命令實(shí)際上就是用git fetch獲取到對應項目的refs/changes/<changeid>/patchset>引用,并自動(dòng)切換到對應的引用上。
repo download {project change [/patchset]}…repo prune子命令實(shí)際上是對git branch -d命令封裝,該命令用于掃描項目的各個(gè)分支,并刪除已經(jīng)合并的分支。
repo prune [<project>…]
— liangjiong.zhou 2013/12/31 03:12
repo forall 可以用來(lái)遍歷所有g(shù)it倉庫。
repo forall -c command
例:
$ repo forall -c git status #等同 repo status$ repo forall -c git clean -dxf #清除整個(gè)repo
聯(lián)系客服