您必須使用 Git (開放原始碼版本管控系統) 和 Repo (在 Git 上執行的 Google 建構存放區管理工具),才能使用 Android 程式碼。如要瞭解存放區與 Git 之間的關係,以及每個工具的相關說明文件連結,請參閱「原始碼控管工具」。
流程
Android 開發作業涉及以下基本工作流程:
- 使用
repo start
開始新的主題分支。 - 編輯檔案。
- 使用
git add
進行階段變更。 - 使用
git commit
修訂變更。 - 使用
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
指令傳回同步衝突,請執行下列操作:
- 查看未合併的檔案 (狀態碼 = U)。
- 視需要編輯衝突區域。
- 切換至相關專案目錄。新增及修訂受影響的檔案,然後重新設定變更:
git add .
git commit
git rebase --continue
- 重新定基完成後,請再次啟動整個同步作業:
repo sync PROJECT0 PROJECT1 ... PROJECTN
清理用戶端
將變更合併至 Gerrit 後,請更新本機工作目錄,然後使用 repo prune
安全移除過時的主題分支:
repo sync
repo prune
刪除用戶端
由於所有狀態資訊都儲存在用戶端中,您只需要從檔案系統中刪除目錄即可:
rm -rf WORKING_DIRECTORY
刪除客戶會永久刪除所有未上傳供審查的變更。