andorid系統源碼管理工具

原文鏈接:https://source.android.com/setup/developing.html

要使用 Android 代碼,您需要使用 Git(一種開源版本控制系統)和 Repo(一種對 Git 構成補充的 Google 代碼庫管理工具)。

Git

Git 旨在處理分佈在多個代碼庫上的大型項目。Android 使用 Git 執行本地操作,例如建立本地分支、提交、對比差異、修改。打造 Android 項目所面臨的挑戰之一就是確定如何最好地支持外部社區 - 從業餘愛好者社區到生產大衆消費類設備的大型 OEM。我們希望組件可以替換,並希望有趣的組件能夠在 Android 之外自行發展。我們最初決定使用一種分佈式修訂版本控制系統,經過篩選,最後選中了 Git。

要詳細瞭解 Git,請參閱 Git 文檔

Repo

Repo 可以在必要時整合 Git 代碼庫,將相關內容上傳到我們的 Gerrit 修訂版本控制系統,並自動執行 Android 開發工作流程的部分環節。Repo 並非用來取代 Git,只是爲了讓您在 Android 環境中更輕鬆地使用 Git。Repo 命令是一段可執行的 Python 腳本,您可以將其放在路徑中的任何位置。使用 Android 源代碼文件時,您可以使用 Repo 執行跨網絡操作。例如,您可以用一個 Repo 命令,將文件從多個代碼庫下載到本地工作目錄。

在大多數情況下,您可以僅使用 Git(不必使用 Repo),或結合使用 Repo 和 Git 命令以組成複雜的命令。不過,使用 Repo 執行基本的跨網絡操作可大大簡化您的工作。要詳細瞭解 Repo,請參閱 Repo 命令參考資料

其他工具

其他工具包括 Gerrit,這是一個基於網頁的代碼審覈系統,適用於使用 Git 的項目。Gerrit 允許所有授權用戶提交更改(如果通過代碼審覈,這些更改會自動納入項目中),以此鼓勵他們更集中地使用 Git。此外,Gerrit 可以在瀏覽器中並排顯示更改,並支持代碼內註釋,使得審覈工作變得更輕鬆。

最後,Android Studio 是用於開發 Android 應用的官方集成開發環境 (IDE)。

工作流程

Android 開發涉及以下基本工作流程:

  1. 使用 repo start 新建一個主題分支。
  2. 修改文件。
  3. 使用 git add 暫存更改。
  4. 使用 git commit 提交更改。
  5. 使用 repo upload 將更改上傳到審覈服務器。

常見任務

在 Android 代碼庫中使用 Git 和 Repo 會涉及到執行以下常見任務:

命令 說明
asasd asdasdas
repo init 初始化一個新客戶端
repo sync 將客戶端同步到代碼庫
repo start 新建一個分支
repo status 顯示當前分支的狀態
repo upload 將更改上傳到審覈服務器
git add 暫存文件
git commit 提交已暫存文件
git branch 顯示當前分支
git branch [branch] 創建新的主題分支
git checkout [branch] 將 HEAD 切換到指定分支
git merge [branch] 將 [branch] 合併到現有分支
git diff 顯示未暫存更改的 diff 結果
git diff --cached 顯示已暫存更改的 diff 結果
git log 顯示現有分支的歷史記錄
git log m/[codeline]… 顯示未推送的提交

要了解如何使用 Repo 下載源代碼,請參閱下載源代碼Repo 命令參考資料

同步源碼

要同步所有可用項目的文件,請運行以下命令:

repo sync

要同步所選項目的文件,請運行以下命令:

repo sync PROJECT0 PROJECT1 ... PROJECTN

創建主題分支

當您開始進行更改(例如當您開始修復錯誤或實現新功能)時,請在本地工作環境中新建一個主題分支。主題分支不是原始文件的副本;它指向某一項提交記錄,可以簡化創建本地分支以及在本地分支之間進行切換的操作。通過使用分支,您可以將工作的某個方面與其他方面分隔開來。請參閱分隔主題分支(一篇有關使用主題分支的有趣文章)。

要使用 Repo 新建一個主題分支,請轉到相應項目並運行以下命令:

repo start BRANCH_NAME .

尾隨句點 (.) 代表當前工作目錄中的項目。

要驗證新分支是否已創建,請運行以下命令:

   repo status .

使用主題分支

要將分支分配給特定項目,請運行以下命令:

repo start BRANCH_NAME PROJECT_NAME

要查看所有項目的列表,請參閱 android.googlesource.com。如果您已轉到相應的項目目錄,則只需使用一個句點來表示當前項目即可。

要切換到本地工作環境中的另一個分支,請運行以下命令:

git checkout BRANCH_NAME

要查看現有分支的列表,請運行以下命令:

git branch

repo branches

這兩個命令均可返回現有分支的列表,並會在當前分支的名稱前面標註星號 (*)。

注意:此工具有一個已知錯誤,可能會導致 repo sync 重置本地主題分支。如果在您運行 repo sync 之後,git branch
顯示 *(無分支),請再次運行 git checkout。

暫存文件

默認情況下,Git 會檢測到您在項目中所做的更改,但不會跟蹤這些更改。要讓 Git 保存您的更改,您必須標記或暫存這些更改,以將其納入到提交中。

要暫存更改,請運行以下命令:

git add

該命令接受將項目目錄中的文件或目錄作爲參數。git add 並不像其名稱表示的這樣只是簡單地將文件添加到 Git 代碼庫,它還可以用於暫存文件的修改和刪除的內容。

查看本地源碼狀態
要列出文件狀態,請運行以下命令:

repo status

要查看未提交的修改(未標記爲需要提交的本地修改),請運行以下命令:

repo diff

要查看已提交的修改(已標記爲需要提交的本地修改),請確保您已轉到相應的項目目錄,然後使用 cached 參數運行 git diff:

cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached

提交更改

在 Git 中,提交是修訂版本控制的基本單位,包含目錄結構的快照以及整個項目的文件內容。要在 Git 中創建提交,請運行以下命令:

git commit

當系統提示您輸入提交消息時,請針對要提交至 AOSP 的更改提供一條簡短(但有用)的消息。如果您不添加提交消息,提交將會中止。

將更改上傳到 Gerrit
請更新至最新版本,然後上傳相應更改:

repo sync
repo upload

運行此命令後,系統會隨即列出您已提交的更改,並提示您選擇要上傳到審覈服務器的哪個分支。如果只有一個分支,則您會看到一個簡單的 y/n 提示符。

解決同步衝突

如果 repo sync 命令提示同步衝突,請執行以下操作:

查看未合併的文件(狀態代碼 = U)。
根據需要修改存在衝突的地方。
對相關項目目錄進行更改。添加並提交受影響的文件,然後對這些更改執行“衍合”(rebase) 命令:

git add .
git commit
git rebase --continue

當衍合完成後,再一次開始整個同步過程:

repo sync PROJECT0 PROJECT1 ... PROJECTN

清理本地源碼

將更改合併到 Gerrit 之後,請更新您的本地工作目錄,然後使用 repo prune 安全地移除已過時的主題分支:

repo sync
repo prune

刪除本地源碼

由於所有狀態信息都會存儲在客戶端中,您只需從文件系統中刪除相應目錄即可:

rm -rf WORKING_DIRECTORY

刪除客戶端將永久刪除您尚未上傳以供審覈的所有更改。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章