2012-09-07 3 views
92

Ich habe zu einem Remote-Bitbucket Repo geschoben und kürzlich hat ein Kollege einen neuen Zweig, den er erstellt hat, auf den gleichen Repo geschoben.Remote-Zweig erscheint nicht in "git branch -r"

Ich versuche, die von ihm hochgeladenen Änderungen abzurufen.

$ git branch -a 
* master 
localbranch1 
localbranch2 
remotes/origin/master 

$ git branch -r
origin/master

im Web-UI für bitbucket ich den Zweig sehen kann er gemacht hat. Jede Hilfe/Beratung/Richtung würde am meisten geschätzt werden. Vielen Dank.

Alle weiteren Informationen, die Sie brauchen, fragen Sie einfach.

EDIT 1

$ git fetch bitbucket 
Password for 'https://[email protected]': 
From https://bitbucket.org/user/repo 
* branch   HEAD  -> FETCH_HEAD 

Wenn die Verzweigung schuf er genannt wird new_branch_b sollte ich zu sehen, erwarten zu:

$ git branch -r  
origin/master 
origin/new_branch_b 

EDIT 2

$ git remote update 
Fetching bitbucket 
Password for 'https://[email protected]': 
From https://bitbucket.org/user/repo 
* branch   HEAD  -> FETCH_HEAD 


$ git branch -r 
    origin/master 

EDIT 3

[remote "bitbucket"] 
url = https://[email protected]/user/repo.git 

rief ich die Fern bitbucket statt Herkunft (zumindest das ist, was ich mich erinnere, habe ich es vor einer Weile nach oben)

EDIT 4

I die bitbucket remote config nach kan's antwort aktualisiert.

$ git config--e

[remote "bitbucket"] 
    url = https://[email protected]/user/repo.git 
    fetch = +refs/heads/*:refs/remotes/bitbucket/* 

Für die meisten Menschen wird es Ursprung

[remote "origin"] 
    url = https://[email protected]/user/repo.git 
    fetch = +refs/heads/*:refs/remotes/origin/* 

Danach

$ git remote update 

Fetching bitbucket 
Password for 'https://[email protected]': 
remote: Counting objects: 48, done. 
remote: Compressing objects: 100% (32/32), done. 
remote: Total 35 (delta 21), reused 0 (delta 0) 
Unpacking objects: 100% (35/35), done. 
From https://bitbucket.org/user/repo 
* [new branch]  branch_name1 -> origin/branch_name1 
* [new branch]  branch_name2 -> origin/branch_name2 

.... und so weiter genannt werden .

Ich denke git fetch origin auch für git remote update

Dank an alle, die mir bei diesem Problem geholfen funktionieren würde.

+17

'git fetch Ursprung' & versuchen Sie es erneut –

+0

Hallo Danke für Ihre Antwort. Ich habe das schon ausprobiert, ich habe meine Frage aktualisiert. Würde der Weg zum Repo irgendwie damit zu tun haben? – feargal

+1

Können Sie '' remote "Ursprung"] 'Abschnitt der' .git/config' Datei anzeigen? – kan

Antwort

78

Der remote Abschnitt gibt auch Regeln holen.Man könnte so etwas wie in sie hinzufügen:

fetch = +refs/heads/*:refs/remotes/origin/* 

Alle Branchen von der Fern zu holen. (oder ersetzen origin durch bitbucket).

Bitte lesen Sie hier: https://git-scm.com/book/en/v2/Git-Internals-The-Refspec

+3

Das hat mein andauerndes Verzweigungsproblem in Git, das ich seit Wochen hatte, behoben. Plötzlich fingen alle git Remote Update Sachen an zu arbeiten. Danke! –

+1

Aus irgendeinem Grund sah es so aus: 'fetch = + refs/heads/master: refs/remotes/origin/master' für mich Ersetzen von 'master' durch' * 'behebt mein Problem –

+3

Die zu bearbeitende Datei ist' .git/config' –

141

Aktualisieren Sie Ihre Fernbedienung, wenn Sie noch nicht getan:

$ git remote update 
$ git branch -r 
+11

Danke, aber keine Freude – feargal

+6

Arbeitete für mich. Vielen Dank. –

+1

Ich verwende den GitHub-Client unter Win und manchmal aktualisiert er die Remote-Zweige nicht. Die erste Zeile "git remote update" funktioniert wie ein Zauber. Einfach & sauber –

14

Ich hatte das gleiche Problem. Scheint die einfachste Lösung ist, nur die Fernbedienung zu entfernen, neu hinzufügen und holen.

+0

War so viel Zeit, um diese Antwort zu finden. Dies funktionierte ohne Probleme. Vielen Dank. :) – kisanme

+0

Das hat auch für mich funktioniert. Vielen Dank. – dKab

+0

Arbeitete auch für mich, ziemlich seltsam, dass dies es gelöst – CailinP

7

Wenn Sie mit --depth Parameter klonen, setzt er .git/config nicht alle Zweige abholen, sondern nur Master.

Sie können einfach wegzulassen der Parameter oder Update-Konfigurationsdatei von

fetch = +refs/heads/master:refs/remotes/origin/master 

zu

fetch = +refs/heads/*:refs/remotes/origin/* 
+0

Danke! Ihre Antwort löst das Problem einfach und scheint der richtige Weg zu sein.Aber Sie sollten hinzufügen, dass die Konfigurationsdatei in '.git/config' ist, damit die Leute sie finden können. – dotnetCarpenter

+0

Ahh du hast. Vielleicht nur den Weg markieren ... – dotnetCarpenter

0

wenn Sie nicht ausgeführt git branch -a und git branch -r Sie alle Remote-Niederlassungen nicht zeigen, haben leider ein " git fetch ". git remote show origin arbeitet ständig die ganze Zeit. Auch zeigt alle Referenzen im Git Repo. Es funktioniert aber genau wie git branch Befehl

Verwandte Themen