Il repository completa Git semplificando il lavoro in più repository. Per un spiegazione della relazione tra repository e Git, vedi Strumenti di controllo del codice sorgente. Per ulteriori informazioni sul repository, consulta README del repository
L'utilizzo dei repository ha il seguente formato:
repo command options
Gli elementi facoltativi sono riportati tra parentesi []. Ad esempio, molti comandi prendono project-list come argomento. Puoi specificare project-list sotto forma di elenco di nomi o di percorsi di directory di origine locali per progetti:
repo sync [project0 project1 ... projectn]
repo sync [/path/to/project0 ... /path/to/projectn]
assistenza
repo help
Fornisce assistenza per il comando repo
. Puoi vedere informazioni dettagliate su un
un comando repository specifico che specifica un comando come opzione:
repo help command
Ad esempio, il seguente comando fornisce una descrizione e un elenco di opzioni
per il comando init
:
repo help init
In alternativa, per visualizzare solo l'elenco delle opzioni disponibili per un comando, esegui:
repo command --help
Ad esempio:
repo init --help
Inizia
repo init -u url [options]
Installa il repository nella directory attuale. Questo comando crea un'.repo/
con repository Git per il codice sorgente del repository
file manifest di Android standard.
Opzioni:
-u
: specifica un URL da cui recuperare un repository di manifest. Il comune file manifest disponibile all'indirizzohttps://android.googlesource.com/platform/manifest
.-m
: seleziona un file manifest all'interno del repository. Se il nome di un file manifest non è selezionato, il valore predefinito èdefault.xml
.-b
: specifica una revisione, ovvero un determinato manifest-branch.
sincronizzazione
repo sync [project-list]
Scarica le nuove modifiche e aggiorna i file di lavoro nel tuo ambiente locale.
ottenendo sostanzialmente git fetch
in tutti i repository Git. Se esegui
repo sync
senza argomenti, sincronizza i file per tutti i progetti.
Quando esegui repo sync
, ecco cosa succede:
Se il progetto non è mai stato sincronizzato,
repo sync
equivale agit clone
; tutti i rami nel repository remoto vengono copiati della directory di un progetto.Se il progetto è stato sincronizzato in precedenza, il valore
repo sync
è equivalente a:git remote update git rebase origin/branch
Dove branch è l'attuale ramo di check-out nell'area geografica della directory di un progetto. Se il ramo locale non sta monitorando un ramo nel repository non avviene alcuna sincronizzazione per il progetto.
Dopo un'esecuzione corretta di repo sync
, il codice nei progetti specificati viene
aggiornate e sincronizzate con il codice nel repository remoto.
Opzioni chiave:
-c
: recupera solo il ramo manifest attuale dal server.-d
: riporta i progetti specificati alla revisione del file manifest. Questa opzione è utile se il progetto si trova su un ramo di argomento, ma la revisione del manifest al momento.-f
: procedi con la sincronizzazione degli altri progetti anche se la sincronizzazione di un progetto non va a buon fine.threadcount
: suddividi la sincronizzazione tra i thread per un completamento più rapido. Assicurati di non sovraccaricare la macchina e lascia un po' di CPU riservati ad altre attività. Per vedere il numero di CPU disponibili, devi prima eseguirenproc --all
.-q
: esecuzione silenziosa eliminando i messaggi di stato.-s
: sincronizza con una build nota come specificato dall'elementomanifest-server
nel manifest attuale.
Per ulteriori opzioni, esegui repo help sync
.
caricare
repo upload [project-list]
Carica le modifiche sul server delle recensioni. Per i progetti specificati, il repository confronta i rami locali ai rami remoti aggiornati durante l'ultima sincronizzazione del repository. Il repository ti chiede di selezionare uno o più rami che non sono stati caricati per la revisione.
Tutti i commit sui rami selezionati vengono quindi trasmessi a Gerrit tramite Connessione HTTPS. Devi configurare una password HTTPS per abilitare il caricamento autorizzazione. Per generare una nuova coppia nome utente/password da utilizzare tramite HTTPS: visita il Generatore di password.
Quando Gerrit riceve i dati dell'oggetto sul suo server, trasforma ogni
impegnarsi in una modifica per consentire ai revisori
di commentare un commit specifico.
Per combinare più commit di checkpoint in un unico commit, usa git rebase -i
prima di eseguire il caricamento.
Se esegui repo upload
senza argomenti, la ricerca cerca in tutti i progetti
modifiche da caricare.
Per modificare le modifiche dopo che sono state caricate, utilizza uno strumento come git rebase -i
oppure
git commit --amend
per aggiornare i tuoi commit locali. Una volta apportate le modifiche
completato:
- Verifica che il ramo aggiornato sia quello attualmente selezionato.
- Usa
repo upload --replace PROJECT
per aprire l'editor che corrisponde alle modifiche. Per ogni commit della serie, inserisci l'ID modifica Gerrit all'interno delle parentesi:
# Replacing from branch foo [ 3021 ] 35f2596c Refactor part of GetUploadableBranches to lookup one specific... [ 2829 ] ec18b4ba Update proto client to support patch set replacements # Insert change numbers in the brackets to add a new patch set. # To create a new change record, leave the brackets empty.
Al termine del caricamento, per le modifiche è stata impostata un'ulteriore patch.
Se vuoi caricare solo il ramo Git attualmente controllato, utilizza il flag
--current-branch
(o --cbr
in breve).
diff
repo diff [project-list]
Mostra le modifiche in sospeso tra il commit e l'albero di lavoro utilizzando
git diff
.
scarica
repo download target change
Scarica la modifica specificata dal sistema di revisione e la rende disponibile in della directory di lavoro locale del progetto.
Ad esempio, per scaricare
cambia 23823 nel tuo
Directory platform/build
:
repo download platform/build 23823
L'esecuzione di repo sync
rimuove tutti i commit recuperati con repo download
. Oppure tu
può controllare il ramo remoto utilizzando git checkout m/main
.
Forall
repo forall [project-list] -c command
Esegue il comando shell specificato in ogni progetto. I seguenti elementi aggiuntivi
le variabili di ambiente sono rese disponibili da repo forall
:
REPO_PROJECT
è impostato sul nome univoco del progetto.REPO_PATH
è il percorso relativo alla radice del client.REPO_REMOTE
è il nome del sistema remoto nel file manifest.REPO_LREV
è il nome della revisione del file manifest, tradotto in un il ramo di monitoraggio locale. Utilizza questa variabile se devi passare il manifest a un comando Git eseguito localmente.REPO_RREV
è il nome della revisione nel file manifest, esattamente come è scritto nel file manifest.
Opzioni:
-c
: comando e argomenti da eseguire. Il comando viene valutato/bin/sh
ed eventuali argomenti dopo che sono stati trasmessi come posizioni della shell parametri.-p
: mostra le intestazioni del progetto prima dell'output del comando specificato. Questo è ottenuto mediante l'associazione di pipe ai flussi stdin, stdout e sterr del comando. pipeline di tutti gli output in un flusso continuo che viene visualizzato in un unico pager durante la sessione.-v
: mostra i messaggi che il comando scrive in stderr.
prugna
repo prune [project-list]
Elimina (elimina) gli argomenti già uniti.
partenza
repo start branch-name [project-list]
Avvia un nuovo ramo per lo sviluppo, a partire dalla revisione specificata nel del file manifest.
L'argomento BRANCH_NAME
fornisce una breve descrizione della modifica che stai
ai progetti. Se non lo conosci, puoi utilizzare il nome
default
.
L'argomento project-list
specifica i progetti che partecipano a questo argomento
ramo.
status
repo status [project-list]
Confronta l'albero di lavoro con l'area di gestione temporanea (indice) e il commit più recente in questo ramo (HEAD) in ogni progetto specificato. Visualizza una riga di riepilogo per in cui c'è una differenza tra questi tre stati.
Per visualizzare solo lo stato del ramo attuale, esegui repo status .
. Lo stato
vengono elencate per progetto. Per ogni file nel progetto, un file di due lettere
viene utilizzato un codice.
Nella prima colonna, una lettera maiuscola indica le differenze dell'area temporanea dall'ultimo stato impegnato.
Lettera | Significato | Descrizione |
---|---|---|
- | Nessuna influenza | Lo stesso in HEAD e indice |
A | Aggiunta | Non in HEAD, nell'indice |
M | Data di modifica | In HEAD, modificato nell'indice |
D | Eliminati | In HEAD, non nell'indice |
R | Rinominato | Non in HEAD, percorso modificato nell'indice |
C | Contenuti copiati | Non in HEAD, copiato da un altro indice |
T | Modalità modificata | Stessi contenuti in HEAD e indice, modalità modificata |
U | Divisa | Conflitto tra HEAD e indice; risoluzione richiesta |
Nella seconda colonna, una lettera minuscola indica le differenze tra la directory di lavoro e dell'indice.
Lettera | Significato | Descrizione |
---|---|---|
- | Nuovo/sconosciuto | Non nell'indice, nell'albero del lavoro |
m | Data di modifica | Modificato nell'indice, nell'albero di lavoro |
g | Eliminati | Nell'indice, non nell'albero di lavoro |
Gestire gli errori dei repository
git commit -a # Commit local changes first so they aren't lost. repo start branch-name # Start the branch git reset --hard HEAD@{1} # And reset the branch so that it matches the commit before repo start repo upload .
L'errore repo: error: no branches ready for upload
viene visualizzato quando il comando
repo start
non è stato eseguito all'inizio della sessione. Per eseguire il ripristino, puoi controllare
l'ID commit, avvia un nuovo ramo e poi uniscilo.