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コマンド自身のバージョンを表示します。