在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ 開(kāi)發(fā)
下載源碼
根據(jù)設(shè)備構(gòu)建
Git 資源
構(gòu)建系統(tǒng)
Android 平臺(tái) 64 位構(gòu)建指導(dǎo)
初始化編譯環(huán)境
Android 源代碼
品牌指南
已知的問(wèn)題
Repo 命令手冊(cè)
構(gòu)建內(nèi)核
Bug 的生命周期
代碼主線、分支和版本
使用 Eclipse
提交補(bǔ)丁
下載與構(gòu)建
參與
項(xiàng)目角色
補(bǔ)丁的生命周期
提交 Bugs
關(guān)于代碼風(fēng)格的指導(dǎo)
開(kāi)發(fā)
代碼名稱,標(biāo)簽和版本號(hào)

開(kāi)發(fā)

應(yīng)用 Android 代碼時(shí),你需要同時(shí)使用 Git 和 Repo,在大多數(shù)情況下,你可以使用 Git 而不是 Repo,或是混合使用 Git 和 Repo 形成的復(fù)雜命令。然而,把 Repo 使用于基本跨網(wǎng)絡(luò)(across-network)的操作時(shí),將會(huì)使你的工作更加簡(jiǎn)單。

Git 是一個(gè)開(kāi)源的版本控制系統(tǒng),設(shè)計(jì)來(lái)處理分布在多個(gè)存儲(chǔ)庫(kù)的大項(xiàng)目。在 Android 背景中,我們可以使用 Git 進(jìn)行本地操作,如本地分支,提交,差異,和編輯。其中我們?cè)诮?Android 項(xiàng)目所面臨的其中一個(gè)挑戰(zhàn)就是如何最好地支持外界社區(qū)——從愛(ài)好社區(qū)到大型 OMEs 構(gòu)建大眾消費(fèi)設(shè)備。我們希望組件能夠被替換,我們還想要有趣的組件去發(fā)展他們?cè)?Android 以外的生活。我們首先選擇一個(gè)分布式的版本控制系統(tǒng),然后進(jìn)一步將其縮小到 Git。

Repo 是我們建立在 Git 頂部的一個(gè)存儲(chǔ)庫(kù)管理工具。Repo 在必要時(shí)可以統(tǒng)一許多個(gè) Git 倉(cāng)庫(kù),上傳到我們的 版本控制系統(tǒng),并且自動(dòng)化 Android 部分開(kāi)發(fā)工作流程。Repo 并不意味著取代 Git,只是幫助更容易地在 Android 環(huán)境中使用 Git。Repo 命令是一個(gè)可執(zhí)行的 Python 腳本,你可以把它放在你的任何路徑上。在使用 Android 源文件工作時(shí),你將把 Repo 使用于跨網(wǎng)絡(luò)操作。例如,使用一個(gè)單一的 Repo 命令,你就可以從多個(gè)存儲(chǔ)庫(kù)下載文件到你的本地目錄下。

Gerrit 是一個(gè)基于 Web 的代碼審查系統(tǒng),使用的是 Git。Gerrit 鼓勵(lì)所有授權(quán)用戶更多的集中使用 Git 來(lái)提交變化,如果他們發(fā)布代碼審查,Gerrit 將可以進(jìn)行自動(dòng)合并。此外,Gerrit 通過(guò)瀏覽器顯示每一步變化使審查變得更加容易,并且支持內(nèi)聯(lián)注釋。

基本工作流程

與存儲(chǔ)庫(kù)交互的基本模式如下:

  1. 使用 repo start 開(kāi)始一個(gè)新的主題分支。
  2. 編輯文件。
  3. 使用 git add 暫存更改。
  4. 使用 git commit 提交更改。
  5. 使用 repo upload 上傳更改到審查服務(wù)器。

http://wiki.jikexueyuan.com/project/android-source/images/developing1.png" alt="images" />

任務(wù)參考

下面的任務(wù)列表總結(jié)了如何進(jìn)行普通的 Repo 和 Git 任務(wù)操作。關(guān)于使用 Repo 下載資源的信息,請(qǐng)參閱 下載資源使用 Repo。

同步你的客戶端

同步所有可用項(xiàng)目的文件:

$ repo sync

同步已選擇項(xiàng)目的文件:

$ repo sync PROJECT0 PROJECT1 PROJECT2 ...

創(chuàng)建主題分支

當(dāng)你開(kāi)始進(jìn)行一個(gè)改變時(shí),在你的本地工作環(huán)境上新建一個(gè)主題分支,例如當(dāng)你開(kāi)始解決 bug 或開(kāi)發(fā)新功能的時(shí)候。主題分支不是原始文件的復(fù)制;它是一個(gè)特定的提交的指向。這使得創(chuàng)建的本地分支能在它們之間進(jìn)行輕微操作的切換。通過(guò)使用分支,你可以把當(dāng)前的工作與其他工作分離。有關(guān)使用主題分支的一篇有趣的文章,請(qǐng)參閱 分離特性分支。

使用 Repo 開(kāi)始一個(gè)主題分支,導(dǎo)航到該項(xiàng)目進(jìn)行修改和發(fā)布:

$ repo start BRANCH_NAME .  

請(qǐng)注意,這個(gè)期間是在當(dāng)前工作目錄下。驗(yàn)證是否已創(chuàng)建新的分支:

$ repo status .

使用主題分支

要指定分支到一個(gè)特定的項(xiàng)目:

$ repo start BRANCH_NAME PROJECT_NAME

查看 android.googlesource.com 所有項(xiàng)目的列表。此外,如果你已經(jīng)導(dǎo)航到特定項(xiàng)目的目錄,那么你可以簡(jiǎn)單地傳遞一個(gè)時(shí)期代表當(dāng)前項(xiàng)目。

要切換到您在本地工作環(huán)境中創(chuàng)造的另一個(gè)分支:

$ git checkout BRANCH_NAME

查看現(xiàn)有分支的列表:

$ git branch

$ repo branches

當(dāng)前分支的名字將被標(biāo)星號(hào)表示優(yōu)先。

注意:一個(gè) bug 可能會(huì)導(dǎo)致 repo sync 重置本地的分支。如果你運(yùn)行 repo sync 之后, git branch 顯示 *(沒(méi)有分支),那就再次運(yùn)行 git checkout。

暫存文件

默認(rèn)情況下,Git 通知但沒(méi)有跟蹤你在一個(gè)項(xiàng)目中所做的更改。為了讓 Git 保存你的更改,你必須將它們標(biāo)記在一個(gè) commit 中。這也稱之為 “staging(暫存)”。

你可以在運(yùn)行下面命令來(lái)暫存更改

git add

它接受作為參數(shù)的項(xiàng)目目錄中的任何文件或目錄。盡管 git add 并不如名字表示的這樣簡(jiǎn)單地將文件添加到 Git 倉(cāng)庫(kù),但是它也是可以用來(lái)暫存文件的修改和刪除的。

查看客戶端狀態(tài)

列出文件的狀態(tài):

$ repo status

查看未提交的編輯:

$ repo diff  

repo diff 命令能夠顯示你所做的每一個(gè)本地編輯,除了已經(jīng)進(jìn)入提交的,如果你正準(zhǔn)備現(xiàn)在提交。如果你現(xiàn)在提交,那么你將進(jìn)入提交并且可以看到每一個(gè)編輯狀態(tài),你需要一個(gè) Git 命令,即 git diff 。運(yùn)行它之前,首先確定你是在當(dāng)前項(xiàng)目的目錄下:

$ cd ~/WORKING_DIRECTORY/PROJECT  
$ git diff ——cached

提交更改

在 Git 中,一個(gè) commit 是版本控制的一個(gè)基本單位,是組成目錄結(jié)構(gòu)的一個(gè)快照(snapshot),也是組成整個(gè)項(xiàng)目的文件內(nèi)容。在 Git 中創(chuàng)建一個(gè) commit 很簡(jiǎn)單,只需要輸入如下代碼:

git commit

你將在你最喜歡的編輯器中收到一條 commit 消息的提示;請(qǐng)為你提交到 AOSP 的更改都提供一條有效信息。如果你不添加記錄信息,你的 commit 將會(huì)被中止。

上傳更改到 Gerrit

上傳之前,更新到最新版本:

repo sync  

然后運(yùn)行

repo upload

這將會(huì)把你已經(jīng)提交的更改列表出來(lái),并且提示你選擇分支上傳到審查服務(wù)器。如果只有一個(gè)分支,那么你會(huì)看到一個(gè)簡(jiǎn)單的 y/n 提示。

恢復(fù)同步?jīng)_突

如果一個(gè) repo sync 顯示同步?jīng)_突:

  • 查看拆分的文件(status code = U)。
  • 必要時(shí)編輯沖突區(qū)域。
  • 在相關(guān)的項(xiàng)目目錄中更改,為上述文件運(yùn)行 git addgit commit,然后 “rebase” 這個(gè)更改。例如:

      $ git add .        
      $ git commit   
      $ git rebase --continue  
  • 當(dāng) rebase 完成時(shí)再一次開(kāi)始完整的同步:

      $ repo sync PROJECT0 PROJECT1 ... PROJECTN

清理你的客戶端文件

更改被合并到 Gerrit 之后更新你的本地工作目錄:

$ repo sync

安全的移除已過(guò)時(shí)的主題分支:

$ repo prune

刪除客戶端

因?yàn)樗袝捍嫖募即鎯?chǔ)在你的客戶端,你只需要從你的文件系統(tǒng)直接刪除目錄:

$ rm -rf WORKING_DIRECTORY

刪除客戶端將會(huì)永久地刪除你還沒(méi)有上傳審查的更改。

Git 和 Repo 備忘錄

http://wiki.jikexueyuan.com/project/android-source/images/developing2.png" alt="images" />