1. repo是什麼?python
repo是一種代碼版本管理工具,它是由一系列的Python腳本組成,封裝了一系列的Git命令,用來統一管理多個Git倉庫。android
2. 爲何要用repo?git
由於Android源碼引用了不少開源項目,每個子項目都是一個Git倉庫,每一個Git倉庫都有不少分支版本,爲了方便統一管理各個子項目的Git倉庫,須要一個上層工具批量進行處理,所以repo誕生。github
repo也會創建一個Git倉庫,用來記錄當前Android版本下各個子項目的Git倉庫分別處於哪個分支,這個倉庫一般叫作:manifest倉庫。api
3. 怎麼安裝repo?服務器
官方的repo腳本下載方法:微信
1curl |
|
因爲官網被牆,目前可使用的repo腳本下載方法以下(二者選一):學習
1 2 3 4 |
|
或者修改手頭已有的被牆的repo文件:
1 2 3 4 |
|
固然,你也能夠去個人GitHub下載這個repo文件,地址:
https://github.com/Jhuster/AOSP/blob/master/repo
4. 怎麼下載源碼?
上面說過,Android源碼分支其實由一個叫manifest倉庫來管理起來的,所以,下載源碼首先要clone這個manifest倉庫。這個倉庫裏面有一個XML文件,其實就是一個文件清單,列出了本代碼倉庫依賴哪些代碼,該去哪下載,分支是什麼。
通常用repo init命令來clone這個manifest倉庫,例如,若是要下載Android源碼,則方法以下:
1 |
|
固然,上面的官網被牆了,所以,推薦以下鏡像(二者選一):
1 2 |
|
初始化完畢後,你會在本地的.repo文件夾中看到manifest倉庫的內容,這個文件夾中最重要的文件是manifest.xml(有的倉庫用的是default.xml,而後指向具體的xml),它就是上面說到的文件清單。
若是要選擇特定版本的Android源碼,或者在已下載的源碼基礎上切換到其餘版本,則可使用-b選項:
1 2 |
|
而後使用 repo sync 命令進行同步便可下載好所有的Android源碼了。
5. manifest.xml文件清單的組成
上面提到了repo init須要初始化一個manifest倉庫,倉庫中含有一個很重要的manifest.xml文件清單,其實這個manifest.xml並不複雜的,它就是用XML文件的格式記錄了本項目依賴的各個Git倉庫的名稱、地址,以及分支等信息。經常使用的元素以下所示:
(1) manifest 最頂層的XML元素
(2) remote 設置遠程git服務器的屬性,如名稱、根URL地址等
(3) project 須要clone的Git倉庫,path表示本機路徑,name表示遠程版本庫的相對路徑
(4) copyfile 執行拷貝操做,把URL/$src地址的文件拷貝到./$dest
其實,若是不使用repo工具,也是能夠對照manifest.xml文件清單直接使用「git clone」的方式一個project一個project的下載的,而後對每一個project進行git checkout特定的分支。
7. 經常使用repo命令
這一塊網上文章不少,我就不詳細講解了,只列出經常使用命令。
(1) repo init // 初始化repo倉庫
(2) repo sync // 下載源碼
(3) repo start // 建立分支
(4) repo checkout //切換分支
(5) repo branches //查看分支
(6) repo status //查看文件狀態
8.
1. repo是什麼?
repo是一種代碼版本管理工具,它是由一系列的Python腳本組成,封裝了一系列的Git命令,用來統一管理多個Git倉庫。
2. 爲何要用repo?
由於Android源碼引用了不少開源項目,每個子項目都是一個Git倉庫,每一個Git倉庫都有不少分支版本,爲了方便統一管理各個子項目的Git倉庫,須要一個上層工具批量進行處理,所以repo誕生。
repo也會創建一個Git倉庫,用來記錄當前Android版本下各個子項目的Git倉庫分別處於哪個分支,這個倉庫一般叫作:manifest倉庫。
3. 怎麼安裝repo?
官方的repo腳本下載方法:
1 |
|
因爲官網被牆,目前可使用的repo腳本下載方法以下(二者選一):
1 2 3 4 |
|
或者修改手頭已有的被牆的repo文件:
1 2 3 4 |
|
固然,你也能夠去個人GitHub下載這個repo文件,地址:
https://github.com/Jhuster/AOSP/blob/master/repo
4. 怎麼下載源碼?
上面說過,Android源碼分支其實由一個叫manifest倉庫來管理起來的,所以,下載源碼首先要clone這個manifest倉庫。這個倉庫裏面有一個XML文件,其實就是一個文件清單,列出了本代碼倉庫依賴哪些代碼,該去哪下載,分支是什麼。
通常用repo init命令來clone這個manifest倉庫,例如,若是要下載Android源碼,則方法以下:
1 |
|
固然,上面的官網被牆了,所以,推薦以下鏡像(二者選一):
1 2 |
|
初始化完畢後,你會在本地的.repo文件夾中看到manifest倉庫的內容,這個文件夾中最重要的文件是manifest.xml(有的倉庫用的是default.xml,而後指向具體的xml),它就是上面說到的文件清單。
若是要選擇特定版本的Android源碼,或者在已下載的源碼基礎上切換到其餘版本,則可使用-b選項:
1 2 |
|
而後使用 repo sync 命令進行同步便可下載好所有的Android源碼了。
5. manifest.xml文件清單的組成
上面提到了repo init須要初始化一個manifest倉庫,倉庫中含有一個很重要的manifest.xml文件清單,其實這個manifest.xml並不複雜的,它就是用XML文件的格式記錄了本項目依賴的各個Git倉庫的名稱、地址,以及分支等信息。經常使用的元素以下所示:
(1) manifest 最頂層的XML元素
(2) remote 設置遠程git服務器的屬性,如名稱、根URL地址等
(3) project 須要clone的Git倉庫,path表示本機路徑,name表示遠程版本庫的相對路徑
(4) copyfile 執行拷貝操做,把URL/$src地址的文件拷貝到./$dest
其實,若是不使用repo工具,也是能夠對照manifest.xml文件清單直接使用「git clone」的方式一個project一個project的下載的,而後對每一個project進行git checkout特定的分支。
7. 經常使用repo命令
這一塊網上文章不少,我就不詳細講解了,只列出經常使用命令。
(1) repo init // 初始化repo倉庫
(2) repo sync // 下載源碼
(3) repo start // 建立分支
(4) repo checkout //切換分支
(5) repo branches //查看分支
(6) repo status //查看文件狀態
8. 小結
關於repo工具就介紹到這裏了,有任何疑問歡迎留言或者來信lujun.hust@gmail.com交流,也歡迎關注個人新浪微博@盧_俊 獲取最新的文章和資訊。
本文出自 「Jhuster的專欄」 博客,請務必保留此出處http://ticktick.blog.51cto.com/823160/1653304
結束語
免費學習更多精品課程,登陸樂搏學院官網http://h.learnbo.cn/
或關注咱們的官方微博微信,還有更多驚喜哦~
本文出自 「Jhuster的專欄」 博客,請務必保留此出處http://ticktick.blog.51cto.com/823160/1653304
1. repo是什麼?
repo是一種代碼版本管理工具,它是由一系列的Python腳本組成,封裝了一系列的Git命令,用來統一管理多個Git倉庫。
2. 爲何要用repo?
由於Android源碼引用了不少開源項目,每個子項目都是一個Git倉庫,每一個Git倉庫都有不少分支版本,爲了方便統一管理各個子項目的Git倉庫,須要一個上層工具批量進行處理,所以repo誕生。
repo也會創建一個Git倉庫,用來記錄當前Android版本下各個子項目的Git倉庫分別處於哪個分支,這個倉庫一般叫作:manifest倉庫。
3. 怎麼安裝repo?
官方的repo腳本下載方法:
1 |
|
因爲官網被牆,目前可使用的repo腳本下載方法以下(二者選一):
1 2 3 4 |
|
或者修改手頭已有的被牆的repo文件:
1 2 3 4 |
|
固然,你也能夠去個人GitHub下載這個repo文件,地址:
https://github.com/Jhuster/AOSP/blob/master/repo
4. 怎麼下載源碼?
上面說過,Android源碼分支其實由一個叫manifest倉庫來管理起來的,所以,下載源碼首先要clone這個manifest倉庫。這個倉庫裏面有一個XML文件,其實就是一個文件清單,列出了本代碼倉庫依賴哪些代碼,該去哪下載,分支是什麼。
通常用repo init命令來clone這個manifest倉庫,例如,若是要下載Android源碼,則方法以下:
1 |
|
固然,上面的官網被牆了,所以,推薦以下鏡像(二者選一):
1 2 |
|
初始化完畢後,你會在本地的.repo文件夾中看到manifest倉庫的內容,這個文件夾中最重要的文件是manifest.xml(有的倉庫用的是default.xml,而後指向具體的xml),它就是上面說到的文件清單。
若是要選擇特定版本的Android源碼,或者在已下載的源碼基礎上切換到其餘版本,則可使用-b選項:
1 2 |
|
而後使用 repo sync 命令進行同步便可下載好所有的Android源碼了。
5. manifest.xml文件清單的組成
上面提到了repo init須要初始化一個manifest倉庫,倉庫中含有一個很重要的manifest.xml文件清單,其實這個manifest.xml並不複雜的,它就是用XML文件的格式記錄了本項目依賴的各個Git倉庫的名稱、地址,以及分支等信息。經常使用的元素以下所示:
(1) manifest 最頂層的XML元素
(2) remote 設置遠程git服務器的屬性,如名稱、根URL地址等
(3) project 須要clone的Git倉庫,path表示本機路徑,name表示遠程版本庫的相對路徑
(4) copyfile 執行拷貝操做,把URL/$src地址的文件拷貝到./$dest
其實,若是不使用repo工具,也是能夠對照manifest.xml文件清單直接使用「git clone」的方式一個project一個project的下載的,而後對每一個project進行git checkout特定的分支。
7. 經常使用repo命令
這一塊網上文章不少,我就不詳細講解了,只列出經常使用命令。
(1) repo init // 初始化repo倉庫
(2) repo sync // 下載源碼
(3) repo start // 建立分支
(4) repo checkout //切換分支
(5) repo branches //查看分支
(6) repo status //查看文件狀態
8. 小結
關於repo工具就介紹到這裏了,有任何疑問歡迎留言或者來信lujun.hust@gmail.com交流,也歡迎關注個人新浪微博@盧_俊 獲取最新的文章和資訊。
本文出自 「Jhuster的專欄」 博客,請務必保留此出處http://ticktick.blog.51cto.com/823160/1653304