Repo是干什么的?
用來統一管理Android源代碼的工具
Repo命令
核心形式:repo <COMMAND> <OPTIONS>
列如:
- repo sync 同步該倉庫
- repo sync sdk 同步sdk項目
- repo init -u https://android.googlesource.com/platform/manifest 同步最新的Android源碼
repo help
幫助我們查詢某一條repo命令已經如何使用。
repo help使用方式:repo help <COMMAND>,比如
**repo help init: ** 會在命令行打印出repo init 可以選擇的選項,以及這些選項所代表的意義。
repo init
在當前文件夾下安裝Repo,同時會創建一個.repo的隱藏文件夾,該文件夾里面包含了Repo的源代碼Git倉庫以及相應的Android manifest文件
-u 選項用以指定Repo源碼所在的倉庫地址.
-b 選項可以用來指定源碼樹中特定的branch.
repo sync
同步本地Repo。如果不添加任何選項則代表同步Repo中的所有項目。
使用該命令時需要注意:
- 如果本地Repo從來沒有同步過,那么此命令的執行效果如果git clone,也就是從遠程倉庫中拉取源代碼。
- 如果已經同步過,那么此命令的執行效果就是先執行git remote update 從遠程倉庫中抓取更新,然后執行git rebase origin/<BRANCH> 丟棄本地的工作進度轉而追蹤最新的<BRANCH>進度,<BRANCH>是指定的遠程倉庫代碼樹中的分支。
repo upload
比較本地分支與上一次同步之后的遠程分支
repo diff
用以顯示本地提交所修改的變動
repo download
命令 repo download <TARGET> <CHANGE>
用以下載遠程倉庫中的變動,并將其應用在本地的Repo項目中。
如:repo download platform/build 23823 會從下載遠程倉庫中23823變動,便將其應用在本地倉庫的platform項目中的build模塊。
repo forall
命令 repo forall [<PROJECT_LIST>] -c <COMMAND>
在該倉庫所有的項目中執行<COMMAND>指令
repo prune
刪除在本地已有但是在遠程不存在的分支
repo start
命令 repo start <BRANCH_NAME> [<PROJECT_LIST>]
在本地開始一個新的分支
<BRANCH_NAME> 代表新的分支名
<PROJECT_LIST> 代表加入到新分支的項目
repo status
命令 repo status [<PROJECT_LIST>]
用以顯示本地工作棧中每個項目的工作狀態,比如刪除-d,修改-m.