repo常⽤命令
所有模块创建⼀个分⽀, repo start test
删除所有模块具体某个本地分⽀,⽆论是否merged:repo abandon test
删除各个模块具体分⽀,同时push到远程 repo forall -c "git push origin --delete test"
1、repo start <topic_name>
开启⼀个新的主题,其实就是每个Project都新建⼀个分⽀。
repo start newbranchname .
创建新的branch分⽀。 "." 代表当前⼯作的branch 分⽀。
2、repo init -u <url> [OPTIONS]
repo init -u git://android.git.kernel/platform/manifest.git
repo init -u URL ⽤以在当前⽬录安装 repository ,会在当前⽬录创建⼀个⽬录 ".repo" -u 参数指定⼀个URL, 从这个URL 中取得repository 的 manifest ⽂件。
在当前⽬录下初始化repo,会在当前⽬录⽣⽣成⼀个.repo⽬录,像Git Project下的.git⼀样,-u指定url,可以加参数-m指定manifest⽂件,默认是l,.repo/manifests保 存manifest⽂件。.repo/projects下有所有的project的数据信息,repo是⼀系列git project的集合,每个git project下的.git⽬录中的refs等⽬录都是链接到.repo/manifests下的。
repo init -u git://android.git.kernel/platform/manifest.git -l
可以⽤ -m 参数来选择获取 repository 中的某⼀个特定的 manifest ⽂件,如果不具体指定,那么表⽰为默认的 namifest ⽂件(l)
repo init -u git://android.git.kernel/platform/manifest.git -b relea-1.0
可以⽤ -b 参数来指定某个manifest 分⽀。
3、repo manifest
可以根据当前各Project的版本信息⽣成⼀个manifest⽂件
4、repo sync [PROJECTN]
advertising
下载最新本地⼯作⽂件,更新成功,这本地⽂件和repository 中的代码是⼀样的。 可以指定需要更新的project , 如果不指定任何参数,会同步整个所有的项⽬。
如果是第⼀次运⾏ repo sync , 则这个命令相当于 git clone ,会把 repository 中的所有内容都拷贝到本地。 如果不是第⼀次运⾏ repo sync , 则相当于 git remote update ; git reba origin/branch . repo sync 会更新 .repo 下⾯的⽂件。 如果在merge 的过程中出现冲突, 这需要⼿动运⾏ git reba --continue
5、repo status
显⽰ project 中每个仓库的状态,并打印仓库名称。
查看本地所有Project的修改,在每个修改的⽂件前有两个字符,第⼀个字符表⽰暂存区的状态。
-no changesame in HEAD and index
Aaddednot in HEAD, in index
Mmodifiedin HEAD, modified in index
Ddeletedin HEAD, not in index
Rrenamednot in HEAD, path changed in index
Ccopiednot in HEAD, copied from another in index
导致英文
Tmode changedsame content in HEAD and index, mode changed
Uunmergedconflict between HEAD and index; resolution required
每⼆个字符表⽰⼯作区的状态
lettermeaningdescription
-new/unknownnot in index, in work tree
mmodifiedin index, in work tree, modified
ddeletedin index, not in work tree
6、repo prune <topic>
删除已经merge的分⽀
7、repo abandon <topic>
删除分⽀,⽆论是否merged
8、repo branch或repo branches
查看所有分⽀
9、repo diff
查看修改
repodiffplatform/build platform/bionic ---只查看其中两个项⽬
10、repo upload
上传本地提交⾄服务器
11、repo forall[PROJECT_LIST]-c COMMAND
对指定的Project列表或所有Project执⾏命令COMMAND,加上-p参数可打印出Project的路径。
12、repo forall -c 'git ret --hard HEAD;git clean -df;git reba --abort'
repo forall –c ‘git remote add korgssh://xiong@172.16.31/$REPO_PROJECT.git’
这个命令可以撤销整个⼯程的本地修改。
13、repo forall -c
遍历所有的git仓库,并在每个仓库执⾏-c所指定的命令(被执⾏的命令不限于git命令,⽽是任何被系统⽀持的命令,⽐如:ls 、 pwd 、cp 等 。
14、repo forall -c git checkout -b 本地分⽀名称(⾃定义) 服务器分⽀名称
下载新的分⽀
15、repo forall -c git checkout your_branch
切换到另外⼀个分⽀
16、repo forall -c git branch -D 分⽀名称extremist
删除分⽀
17、repo forall -c git git ret --hard HEAD
丢弃修改
函授成绩查询18、repo forall -r kernel/linux-3.10.y bootable/bootloader/uboot-2015.04 -c git ret --hard HEAD
对指定的仓进⾏操作,-r后跟仓名
19、repo forall -p -c git branch
repo执⾏的时候加上-p参数就可以在遍历到每个仓库的时候先打印出当前的pwd,然后再继续执⾏-c所指定的命令。
repo forall –c ‘echo$REPO_PROJECT’
添加环境变量。
20、repo foreach [ project-lists] -c commandtxl 是什么意思>fixmbr
对每⼀个 project 运⾏ command 命令
21、repo download target revision
下载特定的修改版本到本地, 例如: repo download pltform/frameworks/ba 1241 下载修改版本为 1241 的代码
22、repo remote
wdas 设置远程仓库
repo remote add […]
repo remote rm […]
repo remote add orgssh://172.16.1.31/git_repo
这个指令是根据xml⽂件添加的远程分⽀,⽅便于向服务器提交代码,执⾏之后的build⽬录下看到新的远程分⽀org
repo remotermorg
删除远程仓库
23、repo push
向服务器提交代码
repo push org
repo push <remotename> [--all |<project>…]
repo会⾃⼰查询需要向服务器提交的项⽬并提⽰⽤户。
24、repo manifest
显⽰manifest⽂件内容
repo manifest –l
# repo forall -help
# repo forall -c: 此命令遍历所有的git仓库,并在每个仓库执⾏-c所指定的命令,被执⾏的命令不限于git命令,⽽是任何被系统⽀持的命令,⽐如:ls, git log, git status等
limbs
# 切换分⽀
# repo formal -c git checkout dev_test
# 删除分⽀
# repo forall -c git branch -D dev_test
# 丢弃分⽀
# repo forall -c git git ret —hard 提交ID(或最原始:HEAD)f man
# repo forall -r framework/ba/core -c git ret —hard 提交ID(或最原始HEAD)