Von Gast (nicht überprüft) , 29 April 2026

Einführung

Ein Remote ist eine benannte URL, die auf ein anderes Git-Repository verweist. git clone erstellt automatisch einen namens origin, aber Sie können beliebig viele hinzufügen. Remotes sind die Brücke zwischen Ihrem lokalen Repository und der Außenwelt.

Auflisten und inspizieren

git remote
git remote -v
git remote show origin

git remote show kontaktiert den Server und meldet getrackte Branches, Push-Regeln und veraltete Refs.

Hinzufügen und entfernen

git remote add upstream https://github.com/original/widget.git
git remote rename upstream origin-upstream
git remote remove origin-upstream

Das Fork-and-Upstream-Muster ist üblich: origin ist Ihr Fork, upstream ist das Projekt, von dem Sie geforkt haben.

Eine URL ändern

Wenn ein Projekt von HTTPS auf SSH oder zu einem neuen Host umzieht:

git remote set-url origin [email protected]:example/widget.git
git remote -v

Mehrere URLs

Sie können auf mehrere Mirrors gleichzeitig pushen, indem Sie zusätzliche Push-URLs hinzufügen:

git remote set-url --add --push origin [email protected]:example/widget.git
git remote -v

Veraltete Branches aufräumen

Wenn Branches auf dem Server gelöscht werden, können Ihre lokalen refs/remotes/origin/* hinterherhinken. Räumen Sie sie auf:

git fetch --prune
git remote prune origin

Oder dauerhaft setzen:

git config --global fetch.prune true

Tracking inspizieren

git branch -vv
# main           a1b2c3d [origin/main] Latest fix
# feature/login  e4f5g6h [origin/feature/login: ahead 2] WIP

-vv zeigt das Upstream jedes Branches und wie weit voraus/zurück er liegt.

insteadOf-Umschreibung

Wenn sich URLs eines Projekts ändern (HTTPS zu SSH, Host-Migration, oder wenn Sie wollen, dass alle GitHub-URLs automatisch SSH verwenden), schreibt insteadOf sie transparent um:

git config --global url."[email protected]:".insteadOf "https://github.com/"
git config --global url."https://github-mirror.example.com/".insteadOf "https://github.com/"

Dies ist besonders praktisch in CI, wo Sie alle Klone mit einer einzigen Konfigurationszeile auf einen lokalen Mirror umschreiben können, ohne Skripte zu bearbeiten. Die umgekehrte Richtung (pushInsteadOf) erlaubt Ihnen, vom selben Remote über HTTPS zu fetchen, aber über SSH zu pushen.

Triangulare Workflows

Im Open Source fetchen Sie typischerweise von upstream (dem kanonischen Projekt) und pushen auf origin (Ihren persönlichen Fork). Einmal konfigurieren und vergessen:

git remote add upstream https://github.com/project/repo.git
git config branch.main.remote upstream
git config branch.main.pushRemote origin
git config --global push.default current

Nun liest git pull automatisch von upstream und git push schreibt auf Ihren Fork. Die Einstellung remote.pushDefault wendet die Regel auf jeden Branch in einem Klon an.

Häufige Fehler

Den Namen eines Remotes mit seiner URL verwechseln. origin ist nur ein Label; Sie können es umbenennen. Eine weitere Falle: dieselbe URL unter zwei verschiedenen Namen hinzufügen und dann von doppelten Refs überrascht werden. Verwenden Sie git remote -v zur Überprüfung. Vergessen, git fetch nach einem Netzwerkwechsel oder URL-Änderung auszuführen, lässt Ihre Tracking-Branches veralten. Schließlich: Auf gemeinsam genutzten Servern löscht das lokale Löschen einer Remote-Tracking-Ref (z. B. git branch -dr origin/main) den Branch nicht auf dem Server; verwenden Sie dafür git push origin --delete main, und nur dann, wenn Sie es wirklich meinen.