När en kollega nämner en gren som inte syns i terminalen vill du snabbt kontrollera om den finns på fjärren. Börja med git branch -r, men kom ihåg att listan visar lokalt sparade referenser och därför kan vara inaktuell.
![]()
Rätt kommando beror på om du behöver en sparad lista eller en färsk kontroll
- Visa sparade fjärrgrenar:
git branch -r - Visa både lokala och sparade fjärrgrenar:
git branch -a - Kontrollera vad fjärren annonserar just nu:
git ls-remote --heads origin - Uppdatera listan och rensa bort inaktuella referenser:
git fetch --prune origin
git branch -r visar fjärrspårningsgrenar, inte en live-lista
Kommandot git branch -r skriver ut fjärrspårningsgrenar, till exempel origin/main och origin/feature/search. Namnen finns i din lokala repository och speglar vad Git senast hämtade från fjärren. De kontrolleras inte automatiskt mot servern när listan visas.
Det är en skillnad som lätt ställer till det. Jag tycker att det hjälper att se origin/feature/search som en lokal bokmärkeslapp till en gren på fjärren, inte som själva grenen. Git beskriver dessa referenser som remote-tracking branches i dokumentationen för git branch.
Vill du även se dina lokala grenar kör du git branch -a. Om du bara behöver fjärrspårningsgrenarna är -r tydligare och ger mindre brus.
Använd git ls-remote när svaret måste komma från fjärren
Behöver du veta vilka grenar fjärren visar just nu, kör git ls-remote --heads origin. Kommandot frågar fjärren direkt och skriver ut commit-ID:n tillsammans med referenser, som refs/heads/main. Det uppdaterar däremot inte dina lokala fjärrspårningsgrenar.
Det är en bra kontroll när en ny gren nyss har publicerats eller när din lokala lista verkar motsäga teamets. Ser du grenen i svaret men inte med git branch -r, behöver du hämta referenserna. Beskrivningen av vad kommandot visar finns i Git-dokumentationen för git ls-remote.
Välj kommando efter vad du vill kontrollera
Två kommandon kan alltså visa olika resultat utan att något av dem är trasigt. Tänk så här: behöver du se din lokala Git-kunskap, använd git branch -r; behöver du fråga servern, använd git ls-remote.
| Situation | Varför listan ser ut så | Gör så här |
|---|---|---|
En kollega har publicerat en gren, men git branch -r visar den inte |
Dina lokala referenser har inte hämtats sedan grenen skapades | Kör git fetch origin och lista på nytt |
En borttagen gren syns fortfarande under origin/ |
Den gamla fjärrspårningsreferensen finns kvar lokalt | Kör git fetch --prune origin |
| Du vill veta vad fjärren annonserar utan att ändra din lokala lista | git branch -r visar sparade referenser, inte en live-förfrågan |
Kör git ls-remote --heads origin |
| Du vill se både lokala och fjärrspårade grenar | Flaggan -a omfattar båda grupperna |
Kör git branch -a |
git fetch hämtar referenser och uppdaterar deras lokala motsvarigheter, men sammanfogar inte ändringar till din aktuella arbetsgren. Med --prune tas också lokala fjärrspårningsreferenser bort när motsvarande grenar saknas på fjärren, vilket beskrivs i dokumentationen för git fetch. Kör därför prune när du vill städa din lokala lista, inte när du enbart vill kontrollera den.
Filtrera listan eller byt till grenen utan omvägar
När repot har många grenar slipper du skrolla genom allt. Filtrera på ett namn med git branch -r --list 'origin/feature/*'; jokertecknet begränsar resultatet till grenar under det mönstret. Behåll citattecknen så att skalet inte försöker tolka mönstret innan Git får det.
Hittar du grenen efter en hämtning kan du skapa en lokal gren som spårar den med git switch --track origin/feature/search. Då kopplas den lokala grenen till sin upstream, alltså den gren Git använder som jämförelsepunkt vid status och pull. Med flera fjärrar bör du ange rätt fjärrnamn uttryckligen, eftersom samma grennamn kan finnas på mer än en.
En enkel rutin håller grenlistan begriplig
När du bara behöver en snabb överblick räcker git branch -r. Om en gren saknas eller verkar vara borttagen, fråga först fjärren med git ls-remote --heads origin; hämta sedan eller rensa lokala referenser utifrån vad du faktiskt vill göra.
För dagligt arbete är kombinationen git fetch --prune följt av git branch -r ofta den tydligaste rutinen. Då visar listan uppdaterade fjärrspårningsgrenar, samtidigt som gamla namn inte ligger kvar och förvirrar nästa beslut.