Hoe vermeld ik alle externe branches in Git 1.7+?

Ik heb git branch -rgeprobeerd, 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 -rwerkt niet. Als git branch -rniet werkt, probeer dan:

git ls-remote --heads <remote-name>

Als git branch -rniet werkt, dan misschien zoals Cascabelzegt “je hebt de standaard refspec aangepast, dus dat git fetchen git remote updateniet alle vertakkingen van remoteophalen”.


[1]Bij het schrijven van deze voetnoot 2018-februari heb ik de opmerkingen bekeken en zie ik dat de git branch -rvoor de overgrote meerderheid werkt ( ongeveer 90% of 125van 140).

Als git branch -rniet werkt, controleer dan of git config --get remote.origin.fetcheen wildcard bevat (*) volgens dit antwoord


Antwoord 2, autoriteit 20%

remote showtoont 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 -rgeeft een overzicht van alle externe branches en git branch -ageeft 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

Git-documentatie.


Antwoord 7, autoriteit 2%

Je kunt ook git fetchdoen gevolgd door een git branch -r. Zonder fetch zie je niet de meest actuele branches.


Antwoord 8

Voer gewoon een git fetchcommando uit. Het zal alle remote branches naar je lokale repository trekken, en dan een git branch -adoen 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 grepgebruiken. 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 branchesuitvoeren.


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

https://git-scm.com/docs/git-branch


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.

Other episodes