wake-up-neo.com

Wie liste ich alle Remote-Filialen in Git 1.7+ auf?

Ich habe git branch -r ausprobiert, aber das listet nur entfernte Verzweigungen auf, die ich lokal verfolgt habe. Wie finde ich die Liste derer, die ich nicht habe? (Es ist mir egal, ob der Befehl alle entfernte Zweige auflistet oder nur die, die nicht erfasst werden.)

483
James A. Rosen

Für die überwiegende Mehrheit[1] von Besuchern hier, die richtige und einfachste Antwort auf die Frage "Wie liste ich alle entfernten Zweige in Git 1.7+ auf?" ist:

git branch -r

Für eine kleine Minderheit[1] git branch -r funktioniert nicht. Wenn git branch -r nicht funktioniert, versuchen Sie Folgendes:

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

Wenn git branch -r nicht funktioniert, kann es sein, dass Cascabel"Sie haben die Standardreferenzspezifikation so geändert, dass git fetch und git remote update nicht ' t alle Zweige von remote holen " .


[1] Beim Schreiben dieser Fußnote vom 2018. Februar habe ich mir die Kommentare angesehen und festgestellt, dass der git branch -r für die überwiegende Mehrheit funktioniert (ungefähr 90% oder 125 von 140) ).

Wenn git branch -r nicht funktioniert, prüfen Sie, ob git config --get remote.Origin.fetch einen Platzhalter (*) gemäß diese Antwort enthält

669
Dustin

remote show zeigt alle Verzweigungen auf der Fernbedienung an, einschließlich derer, die nicht lokal verfolgt werden, und sogar der noch nicht abgerufenen.

git remote show <remote-name>

Es wird auch versucht, den Status der Zweige relativ zu Ihrem lokalen Repo anzuzeigen:

> 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)
148
Klas Mellbourn
git branch -a | grep remotes/*
46
Idan K

Mit git branch -r werden alle entfernten Zweige und git branch -a alle Zweige auf lokaler und entfernter Ebene aufgelistet. Diese Listen werden jedoch veraltet. Um diese Listen auf dem neuesten Stand zu halten, führen Sie sie aus

git remote update --Prune

dadurch wird Ihre lokale Zweigliste mit allen neuen aus der Ferne aktualisiert und alle entfernt, die nicht mehr vorhanden sind. Wenn Sie diesen Aktualisierungsbefehl ohne --Prune ausführen, werden neue Verzweigungen abgerufen, jedoch nicht mehr auf der Remote-Station gelöscht.

Sie können dieses Update beschleunigen, indem Sie eine Fernbedienung angeben. Andernfalls werden Updates von allen hinzugefügten Fernbedienungen abgerufen

git remote update --Prune Origin
36
Nicholas Gronow

Aber 

git branch -ar

sollte es tun.

29
Seakayone

Git Branching - Remote Branches

git ls-remote

Git Dokumentation .

17

Sie können auch git fetch gefolgt von einem git branch -r ausführen. Ohne Abrufen sehen Sie nicht die aktuellsten Zweige.

17
Max Sohrt

Der einfachste Weg, den ich gefunden habe:

git branch -a
9

TL; TR;

Dies ist die Lösung Ihres Problems:

git remote update --Prune    # To update all remotes
git branch -r                # To display remote branches

oder:

git remote update --Prune    # To update all remotes
git branch <TAB>             # To display all branches
5
simhumileco

Der beste auszuführende Befehl ist git remote show [remote]. Dies zeigt alle entfernten und lokalen Zweige, verfolgt und nicht verfolgt.

Hier ein Beispiel aus einem Open Source-Projekt:

> 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)

Wenn wir nur die entfernten Zweige erhalten wollen, können wir grep verwenden. Der Befehl, den wir verwenden möchten, wäre:

grep "\w*\s*(new|tracked)" -E

Mit diesem Befehl:

> 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

Sie können dazu auch einen Alias ​​erstellen:

git config --global alias.branches "!git remote show Origin | grep \w*\s*(new|tracked) -E"

Dann können Sie einfach git branches ausführen.

5
Anubian Noob

Mit GitBash können Sie Folgendes verwenden:

Git-Zweig -a

3
ISSAM RESS

Stellen Sie sicher, dass es sich bei dem von Ihnen aufgelisteten Remote-Ursprung wirklich um das gewünschte Repository handelt und nicht um einen älteren Klon.

0
user3737174

Mit diesem Befehl

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

Listen Sie alle entfernten Zweigstellen auf, einschließlich Festschreibungsnachrichten, Festschreibungs-ID, auf die von entfernten Zweigstellen verwiesen wird.

0
Nayagam

versuche dies....

git fetch Origin
git branch -a
0
Ashish Mehta

Führen Sie einfach den Befehl git fetch aus. Es werden alle entfernten Zweige zu Ihrem lokalen Repository gezogen und dann ein git branch -a ausgeführt, um alle Zweige aufzulisten.

0
Manjunatha B

Am Ende machte ich eine Chaos-Shell-Pipeline, um das zu bekommen, was ich wollte.

git branch -r --all --merged \
    | tail -n +2 \
    | grep -P '^  remotes/Origin/(?!HEAD)' \
    | Perl -p -e 's/^  remotes\/Origin\///g;s/master\n//g'
0
ThorSummoner

Wenn ein entfernter Zweig aufgeführt werden soll, der jedoch nicht aufgeführt wird, möchten Sie möglicherweise überprüfen, ob Ihr Origin ordnungsgemäß eingerichtet ist:

git remote show Origin

Wenn das alles gut ist, sollten Sie vielleicht ein Update ausführen:

git remote update

Vorausgesetzt, dass dies erfolgreich ausgeführt wird, sollten Sie in der Lage sein, das zu tun, was die anderen Antworten sagen:

git branch -r
0
ArtOfWarfare

Ich würde ... benutzen:

git branch -av

Dieser Befehl zeigt Ihnen nicht nur die Liste aller Zweige, einschließlich entfernter Zweige, die mit /remote beginnen, sondern gibt Ihnen auch das *-Feedback zu den aktualisierten Inhalten und die letzten Festschreibungskommentare.

0
prosti