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