Google si impegna a promuovere l'equità razziale per le comunità nere. Vedi come.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Riferimenti sul comando Repo

Repo completa Git semplificando il lavoro su più repository. Vedere Strumenti di controllo del codice sorgente per una spiegazione della relazione tra Repo e Git. Per ulteriori dettagli su Repo, consultare il README di Repo .

L'utilizzo di Repo ha la forma seguente:

repo command options

Gli elementi opzionali sono indicati tra parentesi []. Ad esempio, molti comandi prendono la project-list come argomento. È possibile specificare un elenco project-list come un elenco di nomi o un elenco di percorsi per le directory di origine locali per i progetti:

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

Aiuto

Questa pagina evidenzia semplicemente le opzioni chiave. Vedere la guida della riga di comando per tutti i dettagli. Quando è installato Repo, è possibile trovare la documentazione più recente che inizia con un riepilogo di tutti i comandi eseguendo:

repo help

È possibile visualizzare informazioni dettagliate su qualsiasi comando eseguendolo all'interno di un albero Repo:

repo help command

Ad esempio, il comando seguente fornisce una descrizione e un elenco di opzioni per l'argomento init di Repo, che inizializza Repo nella directory corrente. (Vedi init per i dettagli.)

repo help init

Oppure per visualizzare solo l'elenco delle opzioni disponibili, eseguire:

repo command --help
Per esempio:
repo init --help

dentro

repo init -u url [ options ]

Installa Repo nella directory corrente. Questo crea una directory .repo/ con repository Git per il codice sorgente di Repo e i file manifest Android standard.

Opzioni:

  • -u : specifica un URL da cui recuperare un repository manifest. Il manifest comune si trova su https://android.googlesource.com/platform/manifest .
  • -m : seleziona un file manifest all'interno del repository. Se non viene selezionato alcun nome manifest, il valore predefinito è default.xml .
  • -b : specifica una revisione, ovvero un particolare manifest-branch .

Nota: per tutti i restanti comandi Repo, la directory di lavoro corrente deve essere la directory padre di .repo/ o una sottodirectory della directory padre.

sync

repo sync [ project-list ]

Scarica nuove modifiche e aggiorna i file di lavoro nel tuo ambiente locale, git fetch essenzialmente il git fetch in tutti i repository Git. Se si esegue la repo sync senza argomenti, sincronizza i file per tutti i progetti.

Quando si esegue la repo sync , questo è ciò che accade:

  • Se il progetto non è mai stato sincronizzato, la sincronizzazione repo sync è equivalente a git clone . Tutti i rami nel repository remoto vengono copiati nella directory di progetto locale.

  • Se il progetto è stato sincronizzato in precedenza, la repo sync è equivalente a:

     git remote update
    git rebase origin/ branch
     

    dove branch è il branch attualmente estratto nella directory di progetto locale. Se il ramo locale non sta monitorando un ramo nel repository remoto, allora non si verifica alcuna sincronizzazione per il progetto.

  • Se l'operazione Git rebase provoca conflitti di unione, utilizzare i normali comandi Git (ad esempio, git rebase --continue ) per risolvere i conflitti.

Dopo una corretta esecuzione della repo sync , il codice nei progetti specificati è aggiornato e sincronizzato con il codice nel repository remoto.

Ecco le opzioni chiave. Per ulteriori informazioni, consulta la guida degli repo help sync :

  • -c : recupera solo il ramo manifest corrente dal server.

  • -d : riporta i progetti specificati alla revisione manifest. Questo è utile se il progetto è attualmente su un ramo di argomento, ma la revisione manifest è temporaneamente necessaria.

  • -f : procedi con la sincronizzazione di altri progetti anche se un progetto non riesce a sincronizzarsi.

  • -j threadcount : -j threadcount la sincronizzazione tra thread per un completamento più rapido. Assicurati di non sopraffare la tua macchina lasciando una CPU riservata ad altre attività. Per vedere il numero di CPU disponibili, eseguire prima: nproc --all

  • -q : esegui silenziosamente sopprimendo i messaggi di stato.

  • -s : sincronizza con una build valida nota come specificato dall'elemento manifest-server nel manifest corrente.

caricare

repo upload [ project-list ]

Per i progetti specificati, Repo confronta i rami locali con i rami remoti aggiornati durante l'ultima sincronizzazione di Repo. Repo richiede 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 una connessione HTTPS. È necessario configurare una password HTTPS per abilitare l'autorizzazione di caricamento. Visita il generatore di password per generare una nuova coppia nome utente / password da utilizzare su HTTPS.

Quando Gerrit riceve i dati oggetto sul proprio server, trasforma ogni commit in una modifica in modo che i revisori possano commentare un commit specifico. Per combinare più commit di checkpoint in un unico commit, usa git rebase -i prima di eseguire il caricamento.

Se si esegue il repo upload senza argomenti, cerca in tutti i progetti le modifiche da caricare.

Per modificare le modifiche dopo che sono state caricate, utilizzare uno strumento come git rebase -i o git commit --amend per aggiornare i commit locali. Al termine delle modifiche:

  • Verificare che il ramo aggiornato sia il ramo attualmente estratto.
  • Per ogni commit della serie, inserisci l'ID modifica Gerrit tra parentesi:
     # 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.
     

Al termine del caricamento, le modifiche hanno un set di patch aggiuntivo.

Se vuoi caricare solo il ramo Git attualmente estratto, usa 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 usando git diff .

Scarica

repo download target change

Scarica la modifica specificata dal sistema di revisione e la rende disponibile nella directory di lavoro locale del progetto.

Ad esempio, per scaricare la modifica 23823 nella directory della piattaforma / build:

repo download platform/build 23823

L'esecuzione della repo sync rimuove tutti i commit recuperati con il repo download . Oppure puoi controllare il ramo remoto usando git checkout m/master .

Nota: ci sono ritardi di replica su tutti i server in tutto il mondo, quindi c'è un leggero ritardo di mirroring tra quando una modifica è visibile sul Web in Gerrit e quando il repo download può trovare la modifica per tutti gli utenti.

per tutti

repo forall [ project-list ] -c command

Esegue il comando shell specificato in ciascun progetto. Le seguenti variabili di ambiente aggiuntive 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 dal manifest.

  • REPO_LREV è il nome della revisione dal manifest, tradotto in un ramo di tracciamento locale. Utilizzare questo se è necessario passare la revisione manifest a un comando Git eseguito localmente.

  • REPO_RREV è il nome della revisione dal manifest, esattamente come scritto nel manifest.

Opzioni:

  • -c : comando e argomenti da eseguire. Il comando viene valutato tramite /bin/sh e tutti gli argomenti dopo che vengono passati come parametri posizionali della shell.

  • -p : mostra le intestazioni del progetto prima dell'output del comando specificato. Ciò si ottiene legando i tubi ai flussi stdin, stdout e sterr del comando e convogliando tutto l'output in un flusso continuo che viene visualizzato in una singola sessione di cercapersone.

  • -v : mostra i messaggi che il comando scrive su stderr.

fesso

repo prune [ project-list ]

Elimina (elimina) argomenti già uniti.

inizio

repo start
branch-name [ project-list ]

Inizia un nuovo ramo per lo sviluppo, a partire dalla revisione specificata nel manifest.

L'argomento BRANCH_NAME fornisce una breve descrizione della modifica che stai tentando di apportare ai progetti. Se non lo sai, considera l'utilizzo del nome default .

L'argomento project-list progetti specifica quali progetti partecipano a questo ramo di argomenti.

Nota: un punto (.) È una scorciatoia per il progetto nella directory di lavoro corrente.

stato

repo status [ project-list ]

Confronta l'albero di lavoro con l'area di gestione temporanea (indice) e il commit più recente su questo ramo (HEAD) in ciascun progetto specificato. Visualizza una riga di riepilogo per ciascun file in cui esiste una differenza tra questi tre stati.

Per visualizzare lo stato del solo ramo corrente, eseguire lo repo status . Le informazioni sullo stato sono elencate per progetto. Per ogni file nel progetto, viene utilizzato un codice di due lettere.

Nella prima colonna, una lettera maiuscola indica come l'area di gestione temporanea differisce dall'ultimo stato di commit.

Lettera Senso Descrizione
- Nessun cambiamento Lo stesso in HEAD e indice
UN aggiunto Non in HEAD, in indice
M Modificato In HEAD, modificato in indice
D Deleted In HEAD, non in indice
R rinominato Non in HEAD, il percorso è cambiato nell'indice
C Copiato Non in HEAD, copiato da un altro in indice
T La modalità è cambiata Stesso contenuto in HEAD e indice, modalità modificata
U unmerged Conflitto tra HEAD e indice; risoluzione richiesta

Nella seconda colonna, una lettera minuscola indica come la directory di lavoro differisce dall'indice.

Lettera Senso Descrizione
- Nuovo / sconosciuto Non in indice, nell'albero di lavoro
m Modificato Nell'indice, nell'albero di lavoro, modificato
d Deleted Nell'indice, non nell'albero di lavoro