メモ

調べたり思いついたりしたことをメモします

repo のコマンド

AndoroidやFirefoxOSをやっていると避けて通れないのがgit/repoです。 gitは文献豊富だし多くのサイトで解説が為されているので情報収集に苦労しないのですが、repoはあまり情報がなくて困ることがあります。 コマンド一覧を書いておきます。

サブコマンド一覧

まずサブコマンドの一覧はこんな感じです。

$ repo help --all

usage: repo COMMAND [ARGS]
The complete list of recognized repo commands are:
  abandon      Permanently abandon a development branch
  branch       View current topic branches
  branches     View current topic branches
  checkout     Checkout a branch for development
  cherry-pick  Cherry-pick a change.
  diff         Show changes between commit and working tree
  download     Download and checkout a change
  forall       Run a shell command in each project
  grep         Print lines matching a pattern
  help         Display detailed help on a command
  info         Get info on the manifest branch, current branch or unmerged branc
  init         Initialize repo in the current directory
  list         List projects and their associated directories
  manifest     Manifest inspection utility
  overview     Display overview of unmerged project branches
  prune        Prune (delete) already merged topics
  rebase       Rebase local branches on upstream branch
  selfupdate   Update repo to the latest version
  smartsync    Update working tree to the latest known good revision
  stage        Stage file(s) for commit
  start        Start a new branch for development
  status       Show the working tree status
  sync         Update working tree to the latest revision
  upload       Upload changes for code review
  version      Display the version of repo

repo abandon <branchname> [<project>...]

指定したprojectにgit branch -D <branchname>をやってまわるのと同じ。ローカルリポジトリからブランチを削除します。

repo branch [<project>...]

repo branches [<project>...]

この二つは同じ動きをするようです。指定したprojectのローカルブランチ一覧を表示します。

repo checkout <branchname> [<project>...]

指定したprojectにgit checkout <branchname>をやってまわるのと同じ。指定したブランチ名でチェックアウトします。

repo cherry-pick <sha1>

ローカルリポジトリ中に存在する<sha1>のコミットを現在のブランチへマージします。

repo diff [<project>...]

ワークツリーと、コミット済みの内容とを比べます。

repo download {project change[/patchset]}...

gerritのようなレビューシステムから変更点をダウンロードします。 repo uploadと逆の動きをするコマンドです。

repo forall [<project>...] -c <command> [<arg>...]

指定したcommandを、指定したproject達に対して順々に全部対応します。かなり便利なコマンドです。

repo grep {pattern | -e pattern} [<project>...]

指定した指定したproject内からpatternにマッチするものを検索します。

repo help

コマンド一覧の出力

repo info [-dl] [-o [-b]] [<project>...]

指定したprojectごとの、パスやリビジョン、ローカルブランチ数が見れます。

repo init [options]

よく使う初期化するコマンド。カレントディレクトリに".repo"ディレクトリができてその中に環境が構築されます。-uオプションでマニフェストファイルへのURLを、-bオプションでリビジョンを指定する使い方が多いです。

repo list [-f] [<project>...]

プロジェクトのリストを表示します。

repo manifest [-o {-|NAME.xml} [-r]]

-oを使ってマニフェストファイルをエクスポートできます。local_manifest.xmlも使っている場合は合体して1ファイルのマニフェストにしたものが出力されます。

repo overview [--current-branch] [<project>...]

指定したprojectごとの、未マージの情報が出力されます。

repo prune [<project>...]

マージされ済みのトピックブランチを削除します。

repo rebase {[<project>...] | -i <project>...}

リモートのブランチで、現在のローカルブランチをrebaseします。

repo selfupdate

repoコマンド自身を最新版にアップグレードします。 デフォルトでは https://gerrit.googlesource.com/git-repo から引っ張ってきます。

repo smartsync [<project>...]

repo sync -s と同じです。 最終のブランチでワークツリーを更新します。

repo start <newbranchname> [--all | <project>...]

指定したproject全部に対してローカルブランチを作成します。

repo status [<project>...]

指定したproject全部に対して git status を実行するような感じです。

repo sync [<project>...]

最後に指定したリビジョンで、リモートリポジトリからアップデートを行います。

repo upload [--re --cc] [<project>]...

レビューサーバへアップします。修正が終わってレビュー依頼するときに使います。 送信先はマニフェストファイルの review に書かれたURLです。

repo version

repoコマンド自身のバージョンを表示します。