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.org/platform/manifest.git

  repo init -u URL 用以在当前目录安装 repository ,会在当前目录创建一个目录 ".repo"  -u 参数指定一个URL, 从这个URL 中取得repository 的 manifest 文件。

  在当前目录下初始化repo,会在当前目录生生成一个.repo目录,像Git Project下的.git一样,-u指定url,可以加参数-m指定manifest文件,默认是default.xml,.repo/manifests保        存manifest文件。.repo/projects下有所有的project的数据信息,repo是一系列git project的集合,每个git project下的.git目录中的refs等目录都是链接到.repo/manifests下的。

repo init -u git://android.git.kernel.org/platform/manifest.git -m dalvik-plus.xml

  可以用 -m 参数来选择获取 repository 中的某一个特定的 manifest 文件,如果不具体指定,那么表示为默认的 namifest 文件 (default.xml)

repo init -u git://android.git.kernel.org/platform/manifest.git -b release-1.0

  可以用 -b 参数来指定某个manifest 分支。

3、repo manifest

  可以根据当前各Project的版本信息生成一个manifest文件

4、repo sync [PROJECT1...PROJECTN]

  下载最新本地工作文件,更新成功,这本地文件和repository 中的代码是一样的。 可以指定需要更新的project , 如果不指定任何参数,会同步整个所有的项目。

  如果是第一次运行 repo sync , 则这个命令相当于 git clone ,会把 repository 中的所有内容都拷贝到本地。 如果不是第一次运行 repo sync , 则相当于 git remote update ;  git   rebase origin/branch .  repo sync 会更新 .repo 下面的文件。 如果在merge 的过程中出现冲突, 这需要手动运行  git  rebase --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 reset --hard HEAD;git clean -df;git rebase --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  分支名称

  删除分支

17、repo forall -c git git reset --hard HEAD

  丢弃修改

18、repo  forall -r kernel/linux-3.10.y bootable/bootloader/uboot-2015.04  -c git reset --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 command

       对每一个 project 运行 command 命令

21、repo download  target revision

        下载特定的修改版本到本地, 例如:  repo download pltform/frameworks/base 1241 下载修改版本为 1241 的代码

22、repo remote

  设置远程仓库

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 –o android.xml

1.repo forall命令

# repo forall -help

# repo forall -c: 此命令遍历所有的git仓库,并在每个仓库执行-c所指定的命令,被执行的命令不限于git命令,而是任何被系统支持的命令,比如:ls, git log, git status等

2.repo forall -c使用

  # 切换分支

  # repo formal -c git checkout dev_test

  # 删除分支

  # repo forall -c git branch -D dev_test

  # 丢弃分支

  # repo forall -c git git reset —hard 提交ID(或最原始:HEAD)

  # repo forall -r framework/base/core -c git reset —hard 提交ID(或最原始HEAD)


转自:https://www.cnblogs.com/zhangjiansheng/p/7965546.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342