English ▾ Themen ▾ Neueste Version ▾ git-remote zuletzt aktualisiert in 2.45.0

NAME

git-remote - Verwalten von Nachverfolgungsrepositorys

SYNOPSIS

git remote [-v | --verbose]
git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=(fetch|push)] <name> <URL>
git remote rename [--[no-]progress] <old> <new>
git remote remove <name>
git remote set-head <name> (-a | --auto | -d | --delete | <branch>)
git remote set-branches [--add] <name> <branch>…​
git remote get-url [--push] [--all] <name>
git remote set-url [--push] <name> <newurl> [<oldurl>]
git remote set-url --add [--push] <name> <newurl>
git remote set-url --delete [--push] <name> <URL>
git remote [-v | --verbose] show [-n] <name>…​
git remote prune [-n | --dry-run] <name>…​
git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)…​]

BESCHREIBUNG

Verwalten Sie die Menge der Repositorys ("Remotes"), deren Zweige Sie nachverfolgen.

OPTIONEN

-v
--verbose

Seien Sie etwas ausführlicher und zeigen Sie die Remote-URL nach dem Namen an. Für Promisor-Remotes werden auch die konfigurierten Filter (blob:none usw.) angezeigt. HINWEIS: Dies muss zwischen remote und dem Unterbefehl platziert werden.

BEFEHLE

Ohne Argumente wird eine Liste der vorhandenen Remotes angezeigt. Mehrere Unterbefehle stehen zur Verfügung, um Operationen an den Remotes auszuführen.

add

Fügt ein Remote namens <name> für das Repository unter <URL> hinzu. Der Befehl git fetch <name> kann dann verwendet werden, um Remote-Tracking-Zweige <name>/<branch> zu erstellen und zu aktualisieren.

Mit der Option -f wird git fetch <name> sofort nach der Einrichtung der Remote-Informationen ausgeführt.

Mit der Option --tags importiert git fetch <name> jeden Tag aus dem Remote-Repository.

Mit der Option --no-tags importiert git fetch <name> keine Tags aus dem Remote-Repository.

Standardmäßig werden nur Tags auf abgerufenen Zweigen importiert (siehe git-fetch[1]).

Mit der Option -t <branch> wird anstelle des Standard-Glob-Refspec für das Remote zum Nachverfolgen aller Zweige unter dem Namespace refs/remotes/<name>/ ein Refspec zum Nachverfolgen nur von <branch> erstellt. Sie können mehr als ein -t <branch> angeben, um mehrere Zweige nachzuverfolgen, ohne alle Zweige zu übernehmen.

Mit der Option -m <master> wird ein symbolischer Ref refs/remotes/<name>/HEAD eingerichtet, der auf den <master>-Zweig des Remotes zeigt. Siehe auch den Befehl set-head.

Wenn ein Fetch-Spiegel mit --mirror=fetch erstellt wird, werden die Refs nicht im Namespace refs/remotes/ gespeichert, sondern alles in refs/ auf dem Remote wird direkt in refs/ im lokalen Repository gespiegelt. Diese Option ist nur in Bare-Repositorys sinnvoll, da ein Fetch lokale Commits überschreiben würde.

Wenn ein Push-Spiegel mit --mirror=push erstellt wird, verhält sich git push immer so, als wäre --mirror übergeben worden.

rename

Benennt das Remote namens <old> in <new> um. Alle Remote-Tracking-Zweige und Konfigurationseinstellungen für das Remote werden aktualisiert.

Wenn <old> und <new> gleich sind und <old> eine Datei unter $GIT_DIR/remotes oder $GIT_DIR/branches ist, wird das Remote in das Konfigurationsdateiformat konvertiert.

remove
rm

Entfernt das Remote namens <name>. Alle Remote-Tracking-Zweige und Konfigurationseinstellungen für das Remote werden entfernt.

set-head

Setzt oder löscht den Standardzweig (d. h. das Ziel des symbolischen Refs refs/remotes/<name>/HEAD) für das benannte Remote. Ein Standardzweig für ein Remote ist nicht erforderlich, ermöglicht aber die Angabe des Namens des Remotes anstelle eines bestimmten Zweigs. Wenn beispielsweise der Standardzweig für origin auf master gesetzt ist, kann origin überall dort angegeben werden, wo Sie normalerweise origin/master angeben würden.

Mit -d oder --delete wird der symbolische Ref refs/remotes/<name>/HEAD gelöscht.

Mit -a oder --auto wird das Remote abgefragt, um seinen HEAD zu ermitteln, und dann wird der symbolische Ref refs/remotes/<name>/HEAD auf denselben Zweig gesetzt. Beispiel: Wenn das Remote HEAD auf next zeigt, wird git remote set-head origin -a den symbolischen Ref refs/remotes/origin/HEAD auf refs/remotes/origin/next setzen. Dies funktioniert nur, wenn refs/remotes/origin/next bereits existiert; andernfalls muss es zuerst abgerufen werden.

Verwenden Sie <branch>, um den symbolischen Ref refs/remotes/<name>/HEAD explizit zu setzen. Beispiel: git remote set-head origin master setzt den symbolischen Ref refs/remotes/origin/HEAD auf refs/remotes/origin/master. Dies funktioniert nur, wenn refs/remotes/origin/master bereits existiert; andernfalls muss es zuerst abgerufen werden.

set-branches

Ändert die Liste der von dem benannten Remote nachverfolgten Zweige. Dies kann verwendet werden, um nach der ursprünglichen Einrichtung eines Remotes eine Teilmenge der verfügbaren Remote-Zweige nachzuverfolgen.

Die benannten Zweige werden so interpretiert, als wären sie mit der Option -t auf der Befehlszeile von git remote add angegeben worden.

Mit --add wird die Liste der aktuell nachverfolgten Zweige nicht ersetzt, sondern erweitert.

get-url

Ruft die URLs für ein Remote ab. Konfigurationen für insteadOf und pushInsteadOf werden hier erweitert. Standardmäßig wird nur die erste URL aufgelistet.

Mit --push werden Push-URLs anstelle von Fetch-URLs abgefragt.

Mit --all werden alle URLs für das Remote aufgelistet.

set-url

Ändert URLs für das Remote. Setzt die erste URL für das Remote <name>, die dem Regex <oldurl> entspricht (die erste URL, wenn kein <oldurl> angegeben ist) auf <newurl>. Wenn <oldurl> keiner URL entspricht, tritt ein Fehler auf und nichts wird geändert.

Mit --push werden Push-URLs anstelle von Fetch-URLs bearbeitet.

Mit --add wird anstelle des Änderns vorhandener URLs eine neue URL hinzugefügt.

Mit --delete werden anstelle des Änderns vorhandener URLs alle URLs gelöscht, die dem Regex <URL> für das Remote <name> entsprechen. Der Versuch, alle Nicht-Push-URLs zu löschen, ist ein Fehler.

Beachten Sie, dass die Push-URL und die Fetch-URL, auch wenn sie unterschiedlich gesetzt werden können, immer noch auf denselben Ort verweisen müssen. Was Sie an die Push-URL gesendet haben, sollte das sein, was Sie sehen würden, wenn Sie sofort von der Fetch-URL abrufen würden. Wenn Sie von einem Ort abrufen (z. B. Ihrem Upstream) und an einen anderen pushen (z. B. Ihr Veröffentlichungsrepository), verwenden Sie zwei separate Remotes.

show

Gibt einige Informationen über das Remote <name> aus.

Mit der Option -n werden die Remote-Heads nicht zuerst mit git ls-remote <name> abgefragt; stattdessen werden zwischengespeicherte Informationen verwendet.

prune

Löscht veraltete Referenzen, die mit <name> verknüpft sind. Standardmäßig werden veraltete Remote-Tracking-Zweige unter <name> gelöscht, aber je nach globaler Konfiguration und der Konfiguration des Remotes können wir sogar lokale Tags löschen, die dort nicht hochgeladen wurden. Entspricht git fetch --prune <name>, mit der Ausnahme, dass keine neuen Referenzen abgerufen werden.

Siehe den Abschnitt PRUNING in git-fetch[1], um zu erfahren, was basierend auf verschiedenen Konfigurationen gelöscht wird.

Mit der Option --dry-run werden die zu löschenden Zweige gemeldet, aber nicht tatsächlich gelöscht.

update

Ruft Updates für Remotes oder Remote-Gruppen im Repository ab, wie in remotes.<group> definiert. Wenn weder eine Gruppe noch ein Remote in der Befehlszeile angegeben ist, wird der Konfigurationsparameter remotes.default verwendet; wenn remotes.default nicht definiert ist, werden alle Remotes aktualisiert, für die der Konfigurationsparameter remote.<name>.skipDefaultUpdate nicht auf true gesetzt ist. (Siehe git-config[1]).

Mit der Option --prune wird für alle aktualisierten Remotes ein Pruning durchgeführt.

DISKUSSION

Die Remote-Konfiguration wird über die Konfigurationsvariablen remote.origin.url und remote.origin.fetch erreicht. (Siehe git-config[1]).

BEENDIGUNGSSTATUS

Bei Erfolg ist der Exit-Status 0.

Wenn Unterbefehle wie add, rename und remove das betreffende Remote nicht finden, ist der Exit-Status 2. Wenn das Remote bereits existiert, ist der Exit-Status 3.

Bei jedem anderen Fehler kann der Exit-Status ein beliebiger anderer Nicht-Null-Wert sein.

BEISPIELE

  • Ein neues Remote hinzufügen, abrufen und einen Zweig davon auschecken

    $ git remote
    origin
    $ git branch -r
      origin/HEAD -> origin/master
      origin/master
    $ git remote add staging git://git.kernel.org/.../gregkh/staging.git
    $ git remote
    origin
    staging
    $ git fetch staging
    ...
    From git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
     * [new branch]      master     -> staging/master
     * [new branch]      staging-linus -> staging/staging-linus
     * [new branch]      staging-next -> staging/staging-next
    $ git branch -r
      origin/HEAD -> origin/master
      origin/master
      staging/master
      staging/staging-linus
      staging/staging-next
    $ git switch -c staging staging/master
    ...
  • Imitiert git clone, verfolgt aber nur ausgewählte Zweige

    $ mkdir project.git
    $ cd project.git
    $ git init
    $ git remote add -f -t master -m master origin git://example.com/git.git/
    $ git merge origin

GIT

Teil der git[1] Suite