Google 致力于为黑人社区推动种族平等。查看具体举措
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Repo-Befehlsreferenz

Repo ergänzt Git, indem es die Arbeit über mehrere Repositorys hinweg vereinfacht. Siehe Source - Control - Tools für eine Erklärung der Beziehung zwischen Repo und Git. Weitere Informationen zu Repo finden Sie in der Repo-README-Datei .

Die Verwendung von Repo hat folgende Form:

repo command options

Optionale Elemente sind in Klammern [] angegeben. Beispielsweise verwenden viele Befehle die project-list als Argument. Sie können die project-list als Liste von Namen oder als Liste von Pfaden zu lokalen Quellverzeichnissen für die Projekte angeben:

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

Hilfe

Diese Seite hebt lediglich die wichtigsten Optionen hervor. Ausführliche Informationen finden Sie in der Befehlszeilenhilfe. Wenn Repo installiert ist, finden Sie die neueste Dokumentation, beginnend mit einer Zusammenfassung aller Befehle, indem Sie Folgendes ausführen:

repo help

Sie können detaillierte Informationen zu jedem Befehl anzeigen, indem Sie diesen in einem Repo-Baum ausführen:

repo help command

Der folgende Befehl liefert beispielsweise eine Beschreibung und eine Liste von Optionen für das init Argument von Repo, mit dem Repo im aktuellen Verzeichnis initialisiert wird. (Siehe init für Details.)

repo help init

Oder führen Sie Folgendes aus, um nur die Liste der verfügbaren Optionen anzuzeigen:

repo command --help
Zum Beispiel:
repo init --help

drin

repo init -u url [options]

Installiert Repo im aktuellen Verzeichnis. Dadurch wird ein .repo/ mit Git-Repositorys für den Repo-Quellcode und die Standard-Android-Manifestdateien erstellt.

Optionen:

  • -u : Geben Sie eine URL an, von der ein Manifest-Repository abgerufen werden soll. Das allgemeine Manifest finden Sie unter https://android.googlesource.com/platform/manifest .
  • -m : Wählen Sie eine Manifestdatei im Repository aus. Wenn kein Manifestname ausgewählt ist, lautet der Standardwert default.xml .
  • -b : Geben Sie eine Revision an, dh einen bestimmten manifest-branch .

Hinweis: Für alle verbleibenden Repo-Befehle muss das aktuelle Arbeitsverzeichnis entweder das übergeordnete Verzeichnis von .repo/ oder ein Unterverzeichnis des übergeordneten Verzeichnisses sein.

synchronisieren

repo sync [project-list]

Lädt neue Änderungen herunter und aktualisiert die Arbeitsdateien in Ihrer lokalen Umgebung, git fetch Wesentlichen das git fetch Git in allen Git-Repositorys erreicht wird. Wenn Sie die repo sync ohne Argumente ausführen, werden die Dateien für alle Projekte synchronisiert.

Wenn Sie die repo sync ausführen, geschieht Folgendes:

  • Wenn das Projekt noch nie synchronisiert wurde, entspricht die repo sync dem git clone . Alle Zweige im Remote-Repository werden in das lokale Projektverzeichnis kopiert.

  • Wenn das Projekt zuvor synchronisiert wurde, entspricht die repo sync :

    git remote update
    git rebase origin/branch
    

    Dabei ist branch der aktuell ausgecheckte Zweig im lokalen Projektverzeichnis. Wenn der lokale Zweig keinen Zweig im Remote-Repository verfolgt, erfolgt keine Synchronisierung für das Projekt.

  • Wenn die Git-Rebase-Operation zu Zusammenführungskonflikten führt, verwenden Sie die normalen Git-Befehle (z. B. git rebase --continue ), um die Konflikte zu lösen.

Nach einer erfolgreichen Ausführung der repo sync ist der Code in den angegebenen Projekten auf dem neuesten Stand und wird mit dem Code im Remote-Repository synchronisiert.

Hier sind die wichtigsten Optionen. Weitere repo help sync :

  • -c : Ruft nur den aktuellen Manifest-Zweig vom Server ab.

  • -d : Wechselt bestimmte Projekte zurück zur Manifest-Revision. Dies ist hilfreich, wenn sich das Projekt derzeit in einem Themenzweig befindet, die Manifestrevision jedoch vorübergehend erforderlich ist.

  • -f : Fahren Sie mit der Synchronisierung anderer Projekte fort, auch wenn ein Projekt nicht synchronisiert werden kann.

  • -j threadcount : -j threadcount die Synchronisierung für eine schnellere Fertigstellung auf -j threadcount Threads auf. Stellen Sie sicher, dass Sie Ihren Computer nicht überfordern, indem Sie eine CPU für andere Aufgaben reservieren. Führen nproc --all um die Anzahl der verfügbaren CPUs nproc --all : nproc --all

  • -q : Leise -q indem Statusmeldungen unterdrückt werden.

  • -s : Mit einem bekannten guten Build synchronisieren, wie vom manifest-server Element im aktuellen Manifest angegeben.

hochladen

repo upload [project-list]

Für die angegebenen Projekte vergleicht Repo die lokalen Zweige mit den Remote-Zweigen, die während der letzten Repo-Synchronisierung aktualisiert wurden. Repo fordert Sie auf, einen oder mehrere der Zweige auszuwählen, die nicht zur Überprüfung hochgeladen wurden.

Alle Commits in den ausgewählten Zweigen werden dann über eine HTTPS-Verbindung an Gerrit übertragen. Sie müssen ein HTTPS-Kennwort konfigurieren, um die Upload-Autorisierung zu aktivieren. Besuchen Sie den Passwortgenerator , um ein neues Benutzername / Passwort-Paar zu generieren, das über HTTPS verwendet werden kann.

Wenn Gerrit die Objektdaten über seinen Server empfängt, wird jedes Commit in eine Änderung umgewandelt, sodass Prüfer ein bestimmtes Commit kommentieren können. Um mehrere Checkpoint- Commits zu einem einzigen Commit zu kombinieren, verwenden Sie git rebase -i bevor Sie den Upload ausführen.

Wenn Sie den repo upload ohne Argumente ausführen, werden alle Projekte nach Änderungen zum Hochladen durchsucht.

Verwenden Sie zum Bearbeiten von Änderungen nach dem Hochladen ein Tool wie git rebase -i oder git commit --amend , um Ihre lokalen Commits zu aktualisieren. Nachdem Ihre Änderungen abgeschlossen sind:

  • Stellen Sie sicher, dass der aktualisierte Zweig der aktuell ausgecheckte Zweig ist.
  • Geben Sie für jedes Commit in der Serie die Gerrit-Änderungs-ID in die Klammern ein:
    # 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.
    

Nach Abschluss des Uploads wird für die Änderungen ein zusätzlicher Patch festgelegt.

Wenn Sie nur den aktuell --current-branch Git-Zweig hochladen möchten, verwenden Sie das Flag --current-branch (oder kurz --cbr ).

diff

repo diff [project-list]

Zeigt ausstehende Änderungen zwischen dem Commit und dem Arbeitsbaum mit git diff .

herunterladen

repo download target change

Lädt die angegebene Änderung aus dem Überprüfungssystem herunter und stellt sie im lokalen Arbeitsverzeichnis Ihres Projekts zur Verfügung.

So laden Sie beispielsweise die Änderung 23823 in Ihr Plattform- / Build-Verzeichnis herunter:

repo download platform/build 23823

Durch Ausführen der repo sync alle beim repo download abgerufenen Commits entfernt. Oder Sie können den Remote-Zweig mit git checkout m/master .

Hinweis: Es gibt Replikationsverzögerungen für alle Server weltweit. Daher gibt es eine leichte Verzögerung bei der Spiegelung zwischen dem Zeitpunkt, zu dem eine Änderung im Web in Gerrit sichtbar ist, und dem Zeitpunkt, zu dem der repo download die Änderung für alle Benutzer finden kann.

für alle

repo forall [project-list] -c command

Führt den angegebenen Shell-Befehl in jedem Projekt aus. Die folgenden zusätzlichen Umgebungsvariablen werden von repo forall zur Verfügung gestellt:

  • REPO_PROJECT wird auf den eindeutigen Namen des Projekts gesetzt.

  • REPO_PATH ist der Pfad relativ zum Stammverzeichnis des Clients.

  • REPO_REMOTE ist der Name des Remote-Systems aus dem Manifest.

  • REPO_LREV ist der Name der Revision aus dem Manifest, die in einen lokalen Verfolgungszweig übersetzt wurde. Verwenden Sie diese Option, wenn Sie die Manifestrevision an einen lokal ausgeführten Git-Befehl übergeben müssen.

  • REPO_RREV ist der Name der Revision aus dem Manifest, genau wie im Manifest geschrieben.

Optionen:

  • -c : Befehl und auszuführende Argumente. Der Befehl wird über /bin/sh und alle Argumente ausgewertet, nachdem er als Shell-Positionsparameter übergeben wurde.

  • -p : Projektheader vor der Ausgabe des angegebenen Befehls anzeigen. Dies wird erreicht, indem Pipes an die Streams stdin, stdout und sterr des Befehls gebunden und alle Ausgaben in einen kontinuierlichen Stream geleitet werden, der in einer einzelnen Pager-Sitzung angezeigt wird.

  • -v : Zeigt Nachrichten an, die der Befehl in stderr schreibt.

Pflaume

repo prune [project-list]

Bereinigt (löscht) bereits zusammengeführte Themen.

Start

repo start
branch-name [project-list]

Beginnt einen neuen Zweig für die Entwicklung, beginnend mit der im Manifest angegebenen Revision.

Das Argument BRANCH_NAME enthält eine kurze Beschreibung der Änderung, die Sie an den Projekten vornehmen BRANCH_NAME . Wenn Sie es nicht wissen, sollten Sie den default .

Das project-list gibt an, welche Projekte an diesem Themenzweig teilnehmen.

Hinweis: Ein Punkt (.) Ist eine Abkürzung für das Projekt im aktuellen Arbeitsverzeichnis.

Status

repo status [project-list]

Vergleicht den Arbeitsbaum mit dem Staging-Bereich (Index) und dem letzten Commit für diesen Zweig (HEAD) in jedem angegebenen Projekt. Zeigt eine Zusammenfassungszeile für jede Datei an, in der zwischen diesen drei Zuständen ein Unterschied besteht.

Führen Sie den repo status , um den Status nur der aktuellen Filiale repo status . Die Statusinformationen werden nach Projekt aufgelistet. Für jede Datei im Projekt wird ein aus zwei Buchstaben bestehender Code verwendet.

In der ersten Spalte gibt ein Großbuchstabe an, wie sich der Staging-Bereich vom zuletzt festgeschriebenen Status unterscheidet.

Brief Bedeutung Beschreibung
- - Keine Änderung Gleiches gilt für HEAD und Index
EIN Hinzugefügt Nicht in HEAD, im Index
M. Geändert In HEAD im Index geändert
D. Gelöscht In HEAD, nicht im Index
R. Umbenannt Nicht in HEAD, Pfad im Index geändert
C. Kopiert Nicht in HEAD, kopiert von einem anderen im Index
T. Modus geändert Gleicher Inhalt in HEAD und Index, Modus geändert
U. Nicht eingetaucht Konflikt zwischen HEAD und Index; Auflösung erforderlich

In der zweiten Spalte gibt ein Kleinbuchstabe an, wie sich das Arbeitsverzeichnis vom Index unterscheidet.

Brief Bedeutung Beschreibung
- - Neu / unbekannt Nicht im Index, im Arbeitsbaum
m Geändert Im Index, im Arbeitsbaum, geändert
d Gelöscht Im Index, nicht im Arbeitsbaum