原始碼控管工作流程

如要使用 Android 程式碼,必須用到 Git (開放原始碼的開放原始碼) 版本管控系統) 和 Repo (Google 建立的存放區) 這類工具會在 Git 上執行請參閱來源控制工具。 瞭解 存放區和 Git,以及每項工具的支援說明文件連結。

流程

Android 開發作業包含以下基本工作流程:

  1. 使用 repo start 建立新的主題分支版本。
  2. 編輯檔案。
  3. 使用 git add 進行階段變更。
  4. 使用 git commit 提交變更。
  5. 使用 repo upload 將變更上傳至審查伺服器。

Tasks

在 Android 程式碼存放區中使用 Git 和存放區 執行下列常見工作

指令 說明
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 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

系統提示您輸入修訂訊息時,請針對以下項目提供簡短有力的訊息: 向 Android 開放原始碼計畫提交變更內容如果您未新增修訂訊息,修訂版本就會失敗。

正在將變更上傳至 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

刪除用戶端時,系統會永久刪除任何尚未保留的變更 已上傳並送審。