Ik heb git branch -r
geprobeerd, maar dat geeft alleen remote branches weer die ik lokaal heb gevolgd. Hoe vind ik de lijst met degenen die ik niet heb? (Het maakt mij niet uit of het commando alleremote branches weergeeft of alleen degene die niet getraceerd zijn.)
Antwoord 1, autoriteit 100%
Voor de overgrote meerderheid[1]van de bezoekers hier, het juiste en eenvoudigste antwoord op de vraag“Hoe vermeld ik alle externe branches in Git 1.7+?” is:
git branch -r
Voor een kleine minderheid[1]git branch -r
werkt niet. Als git branch -r
niet werkt, probeer dan:
git ls-remote --heads <remote-name>
Als git branch -r
niet werkt, dan misschien zoals Cascabelzegt “je hebt de standaard refspec aangepast, dus dat git fetch
en git remote update
niet alle vertakkingen van remote
ophalen”.
[1]Bij het schrijven van deze voetnoot 2018-februari heb ik de opmerkingen bekeken en zie ik dat de git branch -r
voor de overgrote meerderheid werkt ( ongeveer 90% of 125van 140).
Als git branch -r
niet werkt, controleer dan of git config --get remote.origin.fetch
een wildcard bevat (*
) volgens dit antwoord
Antwoord 2, autoriteit 20%
remote show
toont alle takken op de afstandsbediening, inclusief die welke niet lokaal worden gevolgd en zelfs die welke nog niet zijn opgehaald.
git remote show <remote-name>
Het probeert ook de status van de filialen te tonen ten opzichte van uw lokale repository:
> git remote show origin
* remote origin
Fetch URL: C:/git/.\remote_repo.git
Push URL: C:/git/.\remote_repo.git
HEAD branch: master
Remote branches:
branch_that_is_not_even_fetched new (next fetch will store in remotes/origin)
branch_that_is_not_tracked tracked
branch_that_is_tracked tracked
master tracked
Local branches configured for 'git pull':
branch_that_is_tracked merges with remote branch_that_is_tracked
master merges with remote master
Local refs configured for 'git push':
branch_that_is_tracked pushes to branch_that_is_tracked (fast-forwardable)
master pushes to master (up to date)
Antwoord 3, autoriteit 6%
git branch -a | grep remotes/*
Antwoord 4, autoriteit 5%
Het gebruik van git branch -r
geeft een overzicht van alle externe branches en git branch -a
geeft een overzicht van alle branches op lokaal en extern. Deze lijsten raken echter verouderd. Voer
. uit om deze lijsten up-to-date te houden
git remote update --prune
die uw lokale filiaallijst zal updaten met alle nieuwe op afstand en alle verwijderd die er niet meer zijn. Het uitvoeren van dit update-commando zonder de –prune zal nieuwe takken ophalen, maar niet verwijderen die niet langer op de afstandsbediening staan.
Je kunt deze update versnellen door een afstandsbediening op te geven, anders worden updates opgehaald van alle afstandsbedieningen die je hebt toegevoegd, zoals zo
git remote update --prune origin
Antwoord 5, autoriteit 3%
Maar
git branch -ar
zou het moeten doen.
Antwoord 6, autoriteit 3%
Git-vertakking – Externe vertakkingen
git ls-remote
Antwoord 7, autoriteit 2%
Je kunt ook git fetch
doen gevolgd door een git branch -r
. Zonder fetch zie je niet de meest actuele branches.
Antwoord 8
Voer gewoon een git fetch
commando uit. Het zal alle remote branches naar je lokale repository trekken, en dan een git branch -a
doen om alle branches weer te geven.
Antwoord 9
De eenvoudigste manier die ik heb gevonden:
git branch -a
Antwoord 10
TL;TR;
Dit is de oplossing van uw probleem:
git remote update --prune # To update all remotes
git branch -r # To display remote branches
of:
git remote update --prune # To update all remotes
git branch <TAB> # To display all branches
Antwoord 11
Probeer dit…
git fetch origin
git branch -a
Antwoord 12
Met Git Bashkun je het volgende gebruiken:
git branch -a
Antwoord 13
Het beste commando om uit te voeren is git remote show [remote]
. Dit toont alle vestigingen, op afstand en lokaal, bijgehouden en niet bijgehouden.
Hier is een voorbeeld van een open source-project:
> git remote show origin
* remote origin
Fetch URL: https://github.com/OneBusAway/onebusaway-android
Push URL: https://github.com/OneBusAway/onebusaway-android
HEAD branch: master
Remote branches:
amazon-rc2 new (next fetch will store in remotes/origin)
amazon-rc3 new (next fetch will store in remotes/origin)
arrivalStyleBDefault new (next fetch will store in remotes/origin)
develop tracked
master tracked
refs/remotes/origin/branding stale (use 'git remote prune' to remove)
Local branches configured for 'git pull':
develop merges with remote develop
master merges with remote master
Local refs configured for 'git push':
develop pushes to develop (local out of date)
master pushes to master (up to date)
Als we alleen de remote branches willen hebben, kunnen we grep
gebruiken. Het commando dat we zouden willen gebruiken zou zijn:
grep "\w*\s*(new|tracked)" -E
Met dit commando:
> git remote show origin | grep "\w*\s*(new|tracked)" -E
amazon-rc2 new (next fetch will store in remotes/origin)
amazon-rc3 new (next fetch will store in remotes/origin)
arrivalStyleBDefault new (next fetch will store in remotes/origin)
develop tracked
master tracked
Je kunt hier ook een alias voor maken:
git config --global alias.branches "!git remote show origin | grep \w*\s*(new|tracked) -E"
Dan kun je gewoon git branches
uitvoeren.
Antwoord 14
Het geaccepteerde antwoord werkt voor mij. Maar ik vond het handiger om de commits gesorteerd te hebben, beginnend met de meest recente.
git branch -r --sort=-committerdate
Antwoord 15
Ik zou gebruiken:
git branch -av
Dit commando toont niet alleen de lijst van alle branches, inclusief remote branches die beginnen met /remote
, maar het geeft je ook de *
feedback over wat je hebt bijgewerkt en de laatste commit-opmerkingen.
Antwoord 16
Als er een remote branch is waarvan je weet dat deze in de lijst zou moeten staan, maar deze niet in de lijst komt te staan, wil je misschien controleren of je origin correct is ingesteld met dit:
git remote show origin
Als dat allemaal goed is, moet je misschien een update uitvoeren:
git remote update
Ervan uitgaande dat dit succesvol is verlopen, zou u moeten kunnen doen wat de andere antwoorden zeggen:
git branch -r
Antwoord 17
Ik heb uiteindelijk een puinhoop-pijplijn gemaakt om te krijgen wat ik wilde. Ik heb zojuist branches van de origin remote samengevoegd:
git branch -r --all --merged \
| tail -n +2 \
| grep -P '^ remotes/origin/(?!HEAD)' \
| perl -p -e 's/^ remotes\/origin\///g;s/master\n//g'
Antwoord 18
Met deze opdracht,
git log -r --oneline --no-merges --simplify-by-decoration --pretty=format:"%n %Cred CommitID %Creset: %h %n %Cred Remote Branch %Creset :%d %n %Cred Commit Message %Creset: %s %n"
CommitID : 27385d919
Remote Branch : (origin/ALPHA)
Commit Message : New branch created
Het geeft een lijst van alle remote branches inclusief commit berichten en commit ID’s waarnaar wordt verwezen door remote branches.
Antwoord 19
Zorg ervoor dat de externe oorsprong die u vermeldt, echt de gewenste repository is en niet een oudere kloon.