Google致力於提高黑人社區的種族平等。 怎麼看。
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

源代碼控制工作流程

使用Android代碼需要使用Git (一種開源版本控制系統)和Repo (一種在Git之上運行的Google構建的存儲庫管理工具)。有關回購和Git之間關係的說明,請參閱源代碼管理工具 ,並提供每個工具的支持文檔的鏈接。

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

  1. 使用repo start啟動一個新的主題分支。
  2. 編輯文件。
  3. 使用git add階段更改。
  4. 使用git commit提交更改。
  5. 使用repo upload更改上傳到審閱服務器。

任務

在Android代碼存儲庫中使用Git和Repo涉及執行以下常見任務。

命令描述
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 顯示未分級更改的差異。
git diff --cached 顯示分階段更改的差異。
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

這兩個命令都返回現有分支的列表,並以當前分支的名稱開頭,並帶有星號(*)。

暫存文件

默認情況下,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命令返回同步衝突:

  1. 查看未合併的文件(狀態碼= U)。
  2. 根據需要編輯衝突區域。
  3. 轉到相關項目目錄。添加並提交受影響的文件,然後重新設置更改的基礎:
    git add .
    git commit
    git rebase --continue
    
  4. 重新設置完成後,請重新啟動整個同步:
    repo sync PROJECT0 PROJECT1 ... PROJECTN
    

清理客戶

合併對Gerrit的更改後,更新本地工作目錄,然後使用repo prune安全刪除過時的主題分支:

repo sync
repo prune

刪除客戶

因為所有狀態信息都存儲在客戶端中,所以您只需要從文件系統中刪除目錄:

rm -rf WORKING_DIRECTORY

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