日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

repo 的用法和理解

發布時間:2024/4/15 编程问答 89 豆豆
生活随笔 收集整理的這篇文章主要介紹了 repo 的用法和理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

repo是調git的腳本


repo的用法

注:repo只是google用Python腳本寫的調用git的一個腳本,主要是用來下載、管理Android項目的軟件倉庫。(也就是說,他是用來管理給git管理的一個個倉庫的)

下載 repo 的地址:http://android.git.kernel.org/repo ,可以用以下二者之一來下載 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 helpinit 來獲取 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 -ugit://android.git.kernel.org/platform/manifest.git -m dalvik-plus.xml

?

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

?

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

?

repo init -ugit://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 , 如果不指定任何參數,會同步整個所有的項目。

?

如果是第一次運行 reposync , 則這個命令相當于 git clone ,會把 repository 中的所有內容都拷貝到本地。如果不是第一次運行 repo sync , 則相當于 git remote update ;? gitrebase 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] -ccommand

?

對每一個 project 運行 command 命令

11. repo status

?

顯示 project 中每個倉庫的狀態

?

12. repo forall -c

?

總結

以上是生活随笔為你收集整理的repo 的用法和理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。