1. 程式人生 > >repo 的一些用法和理

repo 的一些用法和理

repo的用法(zz)

注:repo只是google用Python指令碼寫的呼叫git的一個指令碼,主要是用來下載、管理Android專案的軟體倉庫。(也就是說,他是用來管理給git管理的一個個倉庫的)

下載 repo 的地址: http://android.git.kernel.org/repo ,可以用以下二者之一來下載 repo

wget http://android.git.kernel.org/repo 

或者 

curl http://android.git.kernel.org/repo > ~/bin/repo  

下載完成後須修改repo的許可權: chmod a+x ~/bin/repo 

用repo sync 在抓去 android source code 的時候,會經常出現一些錯誤導致 repo sync 中斷,每次都要手動開始。 可以用如下的命令,來自動重複

$?=1; 

while [ $? -ne 0 ] ; 

do  repo sync ; 

done

獲取幫助:

repo help [ command ]   //顯示command 的詳細的幫助資訊內容

示例: repo help init 來獲取 repo init 的其他用法

repo init -u URL 用以在當前目錄安裝 repository ,會在當前目錄建立一個目錄 ".repo"  -u 引數指定一個URL, 從這個URL 中取得repository 的 manifest 檔案。   

示例:repo init -u git://android.git.kernel.org/platform/manifest.git

獲取的manifest檔案放在.repo目錄中。命名為manifest.xml。這個檔案的內容其實就是所有被git管理的倉庫的列表!

可以用 -m 引數來選擇獲取 repository 中的某一個特定的 manifest 檔案,如果不具體指定,那麼表示為預設的 namifest 檔案 (default.xml)

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

(有諸多供我們選擇的manifest檔案,所有的manifest檔案都放在目錄.repo/manifests中,該目錄本身亦被git所管理,你可以cd進去看看)

可以用 -b 引數來指定某個manifest 分支。

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

你會發現.repo/manifests是個被git管理的倉庫,這裡放的是所有的manifest檔案(*.xml),因為被git管理,固然有分支,-b可以切換到你想要的分支然後再下載相關的xml檔案,當然具體下載那個xml還要看-m引數了,所以如果你僅僅指定-b而沒有-m的話,就是下載-b指定分支下的default.xml檔案

如果不指定-b引數,那麼會預設使用master分支

4. repo sync [project-list]

下載最新本地工作檔案,更新成功,這本地檔案和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 update[ project-list ]

上傳修改的程式碼 ,如果你本地的程式碼有所修改,那麼在執行 repo sync 的時候,會提示你上傳修改的程式碼,所有修改的程式碼分支會上傳到 Gerrit (基於web 的程式碼review 系統), Gerrit 受到上傳的程式碼,會轉換為一個個變更,從而可以讓人們來review 修改的程式碼。

6. repo diff [ project-list ]

        顯示提交的程式碼和當前工作目錄程式碼之間的差異。

7. repo download  target revision

        下載特定的修改版本到本地, 例如:  repo download pltform/frameworks/base 1241 下載修改版本為 1241 的程式碼

8. repo start newbranchname .

        建立新的branch分支。 "." 代表當前工作的branch 分支。

9.  repo prune [project list]

        刪除已經merge 的 project

10. repo foreach [ project-lists] -c command

       對每一個 project 執行 command 命令

12. repo forall -c 

這個命令會遍歷所有的git倉庫,並在每個倉庫執行-c所指定的命令(這個被執行的命令就不限於僅僅是git命令了,而是任何被系統支援的命令,比如:ls 、 pwd 、cp 等等的 )

當我想通過這個命令遍歷所有的倉庫並在每個倉庫執行"git checkout . "用以將每個倉庫的改動都清除的時候,我這麼輸入命令:

repo forall -c git checkout . 

我發現這樣根本不行。看來repo不能遍歷執行checkout這個命令。今天我終於想到了另外一個命令"git reset --hard HEAD" 哈哈

repo forall -c git git reset --hard HEAD

再說一個新發現:以前用repo forall 執行一些命令的時候,可能再遍歷到某個倉庫的時候出了問題,但是我卻苦於不知道這個倉庫到底是哪個!一直也沒有解決。今天終於找到了。。。。  關鍵時候還是要看命令自己帶的幫助手冊呀。。。

repo help forall  用這個命令檢視下針對forall的幫助吧。說的很清楚,repo執行的時候加上-p引數就可以在遍歷到每個倉庫的時候先打印出當前的pwd,然後再繼續執行-c所指定的命令。舉例如下:

repo forall -p -c git branch    

//該命令會遍歷所有倉庫並列印每個倉庫的分支情況,由於有了-p引數,這樣便會打印出每個倉庫的路徑!!!

11. repo status

       顯示 project 中每個倉庫的狀態,並列印倉庫名稱。

相關推薦

repo一些用法

repo的用法(zz) 注:repo只是google用Python指令碼寫的呼叫git的一個指令碼,主要是用來下載、管理Android專案的軟體倉庫。(也就是說,他是用來管理給git管理的一個個倉庫的) 下載 repo 的地址: http://android.git.kern

String.format的一些用法Android中double顯示成科學計數的問題

本文轉載於 String.format()方法使用說明 http://blog.csdn.net/thc1987/article/details/17528093 和JAVA字串格式化-String.format()的使用 http://blog.csdn.net/lone

java的String.format的一些用法Android中double顯示成科學計數的問題

本文轉載於 String.format()方法使用說明http://blog.csdn.net/thc1987/article/details/17528093 和JAVA字串格式化-String.format()的使用 http://blog.csdn.net

Jquery一些用法技巧

1,禁用頁面的右鍵選單 $(document).ready(function(){ $(document).bind("contextmenu",function(e){ return false; }); }); 2,輸入框文字輸入和失去焦

安卓原生分享的一些用法講解!

安卓原生程式碼的分享 今天給大家帶來一個安卓原生程式碼實現分享功能的一些見解!      在我們開發專案的時候經常會出現需求,就是實現分享到QQ,微信,微博以及。。。。。。。。。。很多很多平臺。 這時就出現很尷尬的問題就是我們要下很多jar包匯入專案中,而且有些平臺實現分享

jdk8關於LocaldateLocalDateTime的一些用法

    /**      * 在使用localdate時,"2018-5-9"是不能轉換的,需要在月份和日期前面加上0,例如:"2018-05-09";      * 但是使用過載方法加入formater引數就可以實現了;      * @autho: [email 

關於CookieSession的一些定義用法

Cookie的生存時間: 預設情況下瀏覽器會將Cookie儲存在記憶體中,只要瀏覽器不關閉,Cookie就一直存在. .如果希望關閉瀏覽器後Cookie仍然存在,可以通過設定過期時間達到目的. void Cookie.setMaxAge(int second); ps:second單位是秒,精度

關於Ubuntu下apt的一些用法yum的比較

Fedora和Red Hat有yum安裝軟體,Ubuntu有apt工具。 apt簡單的來說,就是給Ubuntu安裝軟體的一種命令方式 三、apt-get命令選項 五、Red

關於createTextRangecreateRange的一些用法

一、返回createTextRange的text和htmlText     <mce:script language="javascript"><!--   function test()   {   var rng=document.body.create

MySQL GROUP BY GROUP_CONCAT的一些用法

1)  作用:GROUP BY 語句根據一個或多個列對結果集進行分組。 所謂的分組就是根據GROUP BY中的分組標記

(轉)關於ES6的 模塊功能 Module 中export import的用法註意之處

關於 tle from tool spa 尋找 import 其它 模塊 關於ES6的 模塊功能 Module 中export import的用法和註意之處 export default 的用法 export default命令用於指定模塊的默認輸出。顯然,一個模塊

Android的一些方法屬性

註意 odin 技術 drawable button display round clas class 1.Activity常用的方法   View findViewById(int id) //根據組件的ID取得組件對象   setContentView(int

腳本引用中使用deferasync用法區別

兩個 不依賴 doc 體驗 html 中文 htm 停止 其他 是的,就是在頁面腳本引用的時候設置defer或者async,為什麽會有這兩個屬相來輔助腳本加載那,因為瀏覽器在遇到script標簽的時候,文檔的解析會停止,不再構建document,有時打開一個網頁上會出現空

oracle_not existsnot in的用法區別

沒有 class oracl 水果 where tle select mark 顯示 (轉 飛翔-方向 積累 沈澱http://www.cnblogs.com/mytechblog/) sql中exists,not exists的用法 exists表示()內子查詢語句返回結

使用Tomcat的一些經驗心得

全部 oot web 結構 logs linking 多個 code 如果 如今將使用Tomcat的一些經驗和心得寫到這裏。作為記錄和備忘。假設有朋友看到,也請指教。   1、首先是Tomcat的獲取和安裝。     獲取當然得上Apache的官方站點下載,開源免費

阿厝:關於微商新模式的一些經歷思考

互聯網 自媒體 創業 職場 事業請點擊此處輸入圖片描述一個做微商的學生寫的文章,其中有個從事微商去代理化的做法非常好,值得借鑒。阿厝:關於微商新模式的一些經歷和思考微商做久了,你肯定感覺關註你朋友圈的人越來越少了,你發的產品,發的成功學雞湯文,沒有人願意留下評論和點贊了,甚至有人直接屏蔽你了。這樣下去,微商

反射的用法好處

void 配置 更換 exception 帶來 div framework 行程 int 今天我們就來說一說反射(Reflection ), 反射是什麽呢?反射是動態獲取程序集的元數據(metadata)的一種技術。反射是.NetFramework類庫提供的幫助類,動態加載

程序PM的一些感慨總結

任務 data style 第一次 pop article 手寫 程序猿 span 曾經沒做PM時認為PM是個非常舒服的位置,驗收進度,分工模塊,劃分時間,工資還比PG高。做了幾年PM了,當中甘苦自知。 1、工作任務不一樣,做PG僅僅要把自己的工作模塊非常美麗的完畢,就

PHP數組函數的一些用法

php 7 一維數組 array php reac put user records 5.5 echo ‘1、array_multisort( )排序<br/>‘; $arr = array(5,6,2,7,8,1); array_multisort($arr,