一、安裝
建立目錄和修改環境變數
$ mkdir ~/bin
$ path=~/bin:$path
二、幫助$ curl > ~/bin/repo
$ chmod a+x ~/bin/repo
repo help
查詢具體命令的幫助
repo help
repo 倉庫狀態
repo help init
狀態
repo status .
三、初始化
$ repo init -u
示例
這個命令會在當前資料夾建立乙個$ mkdir working_directory
$ cd working_directory
repo init -u
.repo
資料夾,它包含
repo/: 其實是乙個repo的python原始碼
manifest.xml: 工作樹的主配置檔案,不要編輯這個檔案
projects/: 每個git工程的 .git結構
local_manifest.xml: 這個檔案不是repo建立的,你可以建立這個檔案來代替主配置檔案,也就是臨時測試用用
選項:-u: 指定manifest倉庫位址
-m: 選擇倉庫中某個manifest檔案,如果沒有設定,就使用default.xml
-b: 指定乙個分支或修正版本
四、拉**
五、修改reporepo sync
repo sync project0 project1 project2 ...
如果你想修改repo的結構,應該在.repo/manifests
資料夾裡面修改,然後用git命令提交
manifest.xml
檔案結構:
manifest<?xml version="1.0" encoding="utf-8"?>
這個是配置的頂層元素,即根標誌
remote
name:在每乙個.git/config檔案的remote項中用到這個name,即表示每個git的遠端伺服器的名字(這個名字很關鍵,如果多個remote屬性的話,default屬性中需要指定default remote)。git pull、get fetch的時候會用到這個remote name。
alias :可以覆蓋之前定義的remote name,name必須是固定的,但是alias可以不同,可以用來指向不同的remote url
fetch :所有git url真正路徑的字首,所有git 的project name加上這個字首,就是git url的真正路徑
review :指定gerrit的伺服器名,用於repo upload操作。如果沒有指定,則repo upload沒有效果
default
設定所有projects的預設屬性值,如果在project元素裡沒有指定乙個屬性,則使用default元素的屬性值。
remote :遠端伺服器的名字(上面remote屬性中提到過,多個remote的時候需要指定default remote,就是這裡設定了)
revision :所有git的預設branch,後面project沒有特殊指出revision的話,就用這個branch
sync_j : 在repo sync中預設並行的數目
sync_c :如果設定為true,則只同步指定的分支(revision 屬性指定),而不是所有的ref內容
sync_s : 如果設定為true,則會同步git的子專案
include
通過name屬性可以引入另外乙個manifest檔案(路徑相對與當前的manifest.xml 的路徑)
name :另乙個需要匯入的manifest檔案名字
可以在當前的路徑下新增乙個another_manifest.xml,這樣可以在另乙個xml中新增或刪除project
remove-project
從內部的manifest表中刪除指定的project。經常用於本地的manifest檔案,使用者可以替換乙個project的定義
六、建立快照
你可以根據當前.repo
的狀態來建立乙個配置檔案,配置檔案中會 以下這們的格式顯示出來。
repo manifest -o snapshot.xml -r
這個檔案可以用來儲存當前的工作狀態
恢復乙個快照,可以用下面的命令
注意:沒有commit的修改不會恢復,已經commit的但是沒有push的是可以恢復的,但只能從本地恢復。cp snapshot.xml .repo/manifests/
repo init -m snapshot.xml
repo sync -d
七、切換分支
repo start branch_name project_name
檢視分支
repo branches
提交
repo upload
安全刪除不需要的分支
repo prune
八、基本工作流程
repo start
開始乙個新的工作分支use to start a new topic branch.
git commit
提交修改use git add to stage changes.
repo upload
上傳修改
九、一些問題
如果repo長時間沒有響應,可以試試殺掉python程序
killall python
如果想要repo執行時的更多資訊,可以加上--trace
選項
參考1.
參考2.
參考3.
參考4.
repo使用小結
可能出現的錯誤 fatal cannot get 如果出現這個錯誤 則unset下http 和https的 使用下面命令,具體版本號參考前面網頁中顯示的最新版本號。curl bin repo 修改執行許可權 chmod a x bin repo 本地建立乙個工程目錄,並進去 repo init u ...
repo的使用小結(一)
repo是android為了方便管理多個git庫而開發的python指令碼。repo的出現,並非為了取代git,而是為了讓android開發者更為有效的利用git。小型 很少會用到repo,單這次開發有幸用到了,小結一下。拉取 和git的流程幾乎一致 repo inite address 建立本地庫...
repo 基本使用
一 安裝 建立目錄和修改環境變數 mkdir bin path bin path curl bin repo chmod a x bin repo 二 幫助repo help查詢具體命令的幫助 repo help repo 倉庫狀態 repo help init狀態 repo status 三 初始...