Ich habe auf ein entferntes Bitbucket-Repository verschoben, und kürzlich hat ein Kollege einen neuen Zweig, den er erstellt hat, in dasselbe Repository verschoben.
Ich versuche, die Änderungen abzurufen, die er hochgeladen hat.
$ git branch -a
* master
localbranch1
localbranch2
remotes/origin/master
$ git branch -r origin / master
In der Web-Benutzeroberfläche für Bitbucket kann ich den Zweig sehen, den er erstellt hat. Wie kann ich das machen?
Nächster Versuch:
$ git fetch bitbucket
Password for 'https://[email protected]':
From https://bitbucket.org/user/repo
* branch HEAD -> FETCH_HEAD
Wenn der von ihm erstellte Zweig new_branch_b heißt, sollte ich dann Folgendes erwarten?
$ git branch -r
origin/master
origin/new_branch_b
Dritter Versuch:
$ 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
Vierter Versuch:
[remote "bitbucket"]
url = https://[email protected]/user/repo.git
Ich habe bitbucket
eher die Fernbedienung als den Ursprung angerufen (zumindest erinnere ich mich daran; ich habe sie vor einiger Zeit eingerichtet).
Fünfter Versuch:
Ich habe die Bitbucket-Remote-Konfiguration gemäß der Antwort von kan 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 genannt:
[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.
Ich denke git fetch origin
würde auch funktionieren für git remote update
.
refs/remotes/bitbucket/*
anstatt zu verwendenrefs/remotes/origin/*
.git fetch origin
macht den JobAntworten:
Der
remote
Abschnitt gibt auch Abrufregeln an. Sie können so etwas hinzufügen, um alle Zweige von der Fernbedienung abzurufen:(Oder ersetzen
origin
durchbitbucket
.)Bitte lesen Sie hier darüber: 10.5 Git Internals - The Refspec
quelle
fetch = +refs/heads/master:refs/remotes/origin/master
für mich. Das Ersetzenmaster
durch hat*
mein Problem behoben.git clone
einem Projekt. Ich kann mich nicht erinnern, mit meinem lokalen Idioten etwas Besonderes gemacht zu haben.clone
das unterbrochen und dann wieder aufgenommen wurde? Oder ist gleichzeitig etwas anderes auf Repo zugegriffen?Aktualisieren Sie Ihre Fernbedienung, falls Sie dies noch nicht getan haben:
quelle
git remote update
ich den neuen Zweig in der Benutzeroberfläche sehen kann. Dankegit branch -r
. Unter git-scm.com/docs/git-branch heißt es: "Option -r bewirkt, dass die Remote-Tracking-Zweige aufgelistet werden, und Option -a zeigt sowohl lokale als auch Remote-Zweige an."git remote update
ruft alle Zweige aller in aufgelisteten Fernbedienungen abgit remote -v
.git checkout origin/master
und verzweigte mich dann von diesem abgetrennten Kopf zu meinem Hauptzweiggit branch master; git checkout master
Wenn Sie mit dem
--depth
Parameter klonen , werden.git/config
nicht alle Zweige abgerufen, sondern nur der Master.Sie können den Parameter einfach weglassen oder die Konfigurationsdatei von aktualisieren
zu
quelle
.git/config
, damit die Benutzer sie finden können.Ich hatte das gleiche Problem. Es scheint die einfachste Lösung zu sein, einfach die Fernbedienung zu entfernen, sie zu lesen und abzurufen.
quelle
git remote -v
zeigt Ihnen Ihre Fernbedienungen, damit Sie die URL erhalten können,git remote rm origin
entfernt sie undgit remote add origin <url>
fügt sie erneut hinzu.warning: ignoring broken ref refs/remotes/origin/HEAD
Leider
git branch -a
undgit branch -r
sie nicht zeigen Sie alle Remote - Filialen, wenn Sie nicht ein „Git holen“ ausgeführt haben.git remote show origin
arbeitet die ganze Zeit konsequent. Auchgit show-ref
zeigt alle Referenzen im Git - Repository. Es funktioniert jedoch genauso wie dergit branch
Befehl.quelle