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

回購命令參考

回購由多個存儲庫簡化工作補充的Git。請參閱源代碼控制工具用於回購和Git之間的關係的解釋。有關回購的詳細信息,請參閱回購README

回購使用的格式如下:

repo command options

可選元素顯示在方括號[]。例如,許多命令採取project-list作為參數。您可以指定project-list作為名稱的列表或路徑本地源目錄中的項目清單:

repo sync [ project0 project1 ... projectn ]
repo sync [ /path/to/project0 ... /path/to/projectn ]

救命

該頁面只是突出了關鍵選項。請參閱有關完整信息,命令行幫助。當安裝回購,你可以找到最新的文件開始運行的所有命令的摘要:

repo help

您可以通過回購樹內運行此看到有關的任何命令的詳細信息:

repo help command

例如,下面的命令產生的對選項的描述和列表init回購的參數,該參數初始化回購在當前目錄。 (參見初始化的詳細信息。)

repo help init

或者只看到可用選項的列表,請運行:

repo command --help
例如:
repo init --help

在裡面

repo init -u url [ options ]

安裝回購在當前目錄。這將創建一個.repo/使用Git倉庫的回購源代碼和標準的Android清單文件的目錄。

選項:

  • -u :指定從中取回清單庫中的URL。常見的表現是在發現https://android.googlesource.com/platform/manifest
  • -m :選擇庫中的清單文件。如果沒有選擇清單名稱,默認是default.xml
  • -b :指定一個版本,也就是一個特定的manifest-branch

注:對於所有剩餘回購命令,當前工作目錄必須是的父目錄.repo/或父目錄的子目錄。

同步

repo sync [ project-list ]

下載新的變化,並在本地環境更新的工作文件,基本完成git fetch所有Git倉庫。如果您運行repo sync不帶任何參數,它同步所有項目的文件。

當您運行repo sync ,這是發生了什麼:

  • 如果項目從未同步,則repo sync相當於git clone 。遠程倉庫中的所有分支都複製到本地項目目錄。

  • 如果該項目之前已經同步,則repo sync等效於:

     git remote update
    git rebase origin/ branch
     

    其中branch是在本地項目目錄當前簽出的分支。如果本地分支不會在遠程倉庫跟踪一個分支,那麼沒有同步發生的項目。

  • 如果在Git的合併衝突變基操作的結果,使用普通的Git命令(例如, git rebase --continue )來解決衝突。

的成功運行後repo sync ,在規定的項目的代碼是最新的,並與在遠程存儲庫中的代碼同步。

以下是關鍵選項。見repo help sync更多:

  • -c :只獲取來自服務器的當前清單分支。

  • -d :開關指定項目回清單修訂。這是有益的,如果該項目目前是一個話題分支,但暫時需要的清單版本。

  • -f :繼續與同步的其他項目,即使一個項目未同步。

  • -j threadcount :拆分跨線程同步更快完成。確保不留下用於其他任務預留一些CPU壓倒你的機器。要查看可用的CPU,第一次運行的數量: nproc --all

  • -q :通過抑制狀態消息悄悄地運行。

  • -s :同步於由指定的一個已知的良好版本manifest-server在當前清單元素。

上傳

repo upload [ project-list ]

對於指定的項目,回購比較本地分支到遠程分支的最後回購同步期間更新。回購將提示您選擇一個或多個沒有被上傳審核的分支機構。

所選分支所有的提交,然後通過HTTPS連接傳送到格里特。您需要配置一個HTTPS密碼,使上傳授權。訪問密碼生成器生成一個新的用戶名/密碼對使用通過HTTPS。

當格里特在其服務器接收的對象數據,它變成每個提交到一個變化使得審閱者可以在一個特定的提交評論。為了幾個檢查站提交合併成一個單一的提交,使用git rebase -i運行上傳前。

如果您運行repo upload不帶任何參數,它會搜索所有的項目更改上傳。

他們一直在上傳後的編輯修改,使用像一個工具git rebase -igit commit --amend更新您的本地提交。編輯之後完成:

  • 驗證更新分支是當前已簽出的分支。
  • 對於每一個系列中的承諾,輸入括號內的格里特變化ID:
     # Replacing from branch foo
    [ 3021 ] 35f2596c Refactor part of GetUploadableBranches to lookup one specific...
    [ 2829 ] ec18b4ba Update proto client to support patch set replacments
    # Insert change numbers in the brackets to add a new patch set.
    # To create a new change record, leave the brackets empty.
     

上傳完成後,變化有一個額外的補丁集。

如果您要上傳只有當前已簽出的Git分支,使用標誌--current-branch (或--cbr的簡稱)。

DIFF

repo diff [ project-list ]

展會之間的提交和使用工作樹未完成的更改git diff

下載

repo download target change

下載從審查制度的規定的變化,使得它在你的項目的本地工作目錄中。

例如,下載變更23823到你的平台/ build目錄:

repo download platform/build 23823

運行repo sync刪除所有提交檢索與repo download 。或者,您可以使用檢查出遠程分支git checkout m/master

注:有複製延遲於世界各地的服務器上,所以有當一個變化是在網絡上可見之間的輕微滯後鏡像格里特repo download可以找到所有用戶的變化。

對所有人

repo forall [ project-list ] -c command

執行每個項目指定的shell命令。下面附加的環境變量被提供repo forall

  • REPO_PROJECT設置為項目的唯一名稱。

  • REPO_PATH是相對於所述客戶端的根的路徑。

  • REPO_REMOTE從清單中的遠程系統的名稱。

  • REPO_LREV是從清單的修訂,翻譯成當地的跟踪分支的名字。如果你需要的清單修訂傳遞給本地執行的Git命令使用此功能。

  • REPO_RREV是從清單修訂的姓名完全一致寫入清單。

選項:

  • -c :命令和參數來執行。該命令是通過評估/bin/sh和之後的任何參數是通過作為殼位置參數傳遞。

  • -p :指定命令的輸出之前顯示項目頭。這是通過結合管於該命令的stdin,stdout和sterr流,並且所有管道輸出到被顯示在單個尋呼機會話的連續流來實現的。

  • -v :顯示信息的命令寫至標準錯誤。

修剪

repo prune [ project-list ]

西梅(刪除),它們已經合併的話題。

開始

repo start
branch-name [ project-list ]

開始一個新的分支發展,從清單中指定的修訂版開始。

BRANCH_NAME參數提供你正在努力使該項目改變的簡短說明。如果你不知道,可以考慮使用名稱default

project-list參數指定哪些項目參與這個話題的分支。

注:(。)的時段是在當前工作目錄中的項目的簡寫。

狀態

repo status [ project-list ]

工作樹進行比較,以臨時區域(指數)和最近提交的這個分支(HEAD)中指定每個項目。顯示那裡是這三個國家之間的差異的每個文件的摘要行。

看到的只是當前分支的狀態,運行repo status 。該狀態信息通過項目上市。對於項目中的每個文件,使用兩個字母的代碼。

在第一列中,大寫字母表示如何從最後提交的狀態臨時區域不同。

含義描述
- 沒變同樣在頭指數
一個添加不是行頭,在指數
中號改性在HEAD,改性在索引
d 已刪除頭,而不是在指數
[R 改名不是行頭,路徑改變指數
C 複製不是在HEAD,從另一個在索引複製
Ť 模式改變在HEAD和索引同樣的內容,模式改變
ü 取消合併 HEAD和索引之間的衝突;所需的分辨率

在第二列中,小寫字母表示如何從索引工作目錄是不同的。

含義描述
- 新/未知不是指數,在工作樹
改性在指數,在工作樹,修改
d 已刪除在指數,而不是在工作樹