adminslog/dokus/git/git-remote-branch.md

4.3 KiB
Raw Blame History

Git Remote-Branches: Häufige Aufgaben und Lösungen

Stand: 2025-05-26

Diese Anleitung erklärt, wie man mit Remote-Branches arbeitet insbesondere dann, wenn der Branch lokal noch nicht existiert oder gezielt ressourcenschonend gearbeitet werden soll.


📌 Inhalt


1. Wie hole ich einen Remote-Branch, den ich lokal noch nicht habe?

git fetch
git checkout -b <lokaler-name> origin/<remote-branch>

Alternativ automatisch als Tracking-Branch:

git checkout --track origin/<remote-branch>

Beispiel:

git checkout --track origin/feature/chat-system

2. Warum sehe ich den Remote-Branch nicht in git branch -r?

git branch -r zeigt nur die lokal bekannten Remote-Refs.
Du musst vorher git fetch ausführen:

git fetch
git branch -r

Optional: erzwungen alles holen:

git fetch origin '+refs/heads/*:refs/remotes/origin/*'

3. Holt git clone automatisch alle Branches?

Nicht ganz. git clone:

  • holt alle Branches als Referenzen
  • checkt nur den Standard-Branch (z.B. main) lokal aus

Weitere Branches müssen manuell ausgecheckt werden:

git checkout --track origin/<branch-name>

Optional zur Sicherheit vorher:

git fetch
git branch -r

4. Wie klone ich gezielt nur einen bestimmten Branch?

Nur den gewünschten Branch klonen (kein anderer wird geholt):

git clone --branch <branch-name> --single-branch <repo-url>

Mit reduziertem Verlauf (nur letzte Commits):

git clone --branch <branch-name> --single-branch --depth 1 <repo-url>

5. Wann ist --single-branch sinnvoll?

Diese Variante ist ideal, wenn:

  • du nur an einem Branch arbeiten willst
  • du Platz oder Zeit sparen möchtest
  • du das Repo später einfach löschen willst
  • du z.B. in CI/CD, Docker, VMs oder temporär lokal arbeitest

Sie vermeidet unnötige Daten und beschleunigt den Clone-Prozess.


6. Wie sehe ich alle Remote-Branches vor dem Clonen?

Du kannst dir alle Branches am Remote-Repo anzeigen lassen, ohne zu klonen:

git ls-remote --heads <repo-url>

Beispiel:

git ls-remote --heads ssh://git@local.ionivation.com:2222/codewalker/codewalker.net.git

Ergebnis:

f3a91d...  refs/heads/main
c4bd79...  refs/heads/feature/chat-system

🛠️ Optionaler Alias-Tipp

Wenn du häufig neue Branches holen willst:

git config --global alias.fr 'fetch && branch -r'

Verwendung:

git fr

= git fetch + Anzeige aller Remote-Branches


🧠 Zusammenfassung

Ziel Befehl
Remote-Branch holen + auschecken git fetch + git checkout --track origin/<name>
Nur einen Branch klonen git clone --branch <name> --single-branch <url>
Branchliste ohne Clone anzeigen git ls-remote --heads <repo-url>
Lokale Sichtbarkeit Remote-Branches git fetch + git branch -r