原始碼控管工作流程

您必須使用 Git (開放原始碼版本管控系統) 和 Repo (在 Git 上執行的 Google 建構存放區管理工具),才能使用 Android 程式碼。如要瞭解存放區與 Git 之間的關係,以及每個工具的相關說明文件連結,請參閱「原始碼控管工具」。

流程

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

  1. 使用 repo start 開始新的主題分支。
  2. 編輯檔案。
  3. 使用 git add 進行階段變更。
  4. 使用 git commit 修訂變更。
  5. 使用 repo upload 將變更內容上傳至審查伺服器。

Tasks

在 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

系統提示您提供修訂訊息時,請針對提交至 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

刪除客戶會永久刪除所有未上傳供審查的變更。