Ich habe ein Repository geklont, wonach jemand anderes einen neuen Zweig erstellt hat, an dem ich gerne arbeiten möchte. Ich habe das Handbuch gelesen und es scheint ganz einfach zu sein. Seltsamerweise funktioniert es nicht und alle Beiträge, die ich gefunden habe, deuten darauf hin, dass ich das Richtige tue. Also habe ich mich dem aussetzen werde zurechtweist, weil es muss mit diesem etwas offensichtlich falsch sein:
Die richtige Aktion scheint zu sein
git fetch
git branch -a
* master
remotes/origin/HEAD --> origin/master
remotes/origin/master
git checkout -b dev-gml origin/dev-gml
An diesem Punkt gibt es ein Problem, aus irgendeinem Grund, nachdem git fetch
ich den Remote-Zweig dev-gml nicht sehen kann. Warum nicht? Wenn ich das Repository frisch klone, ist es dort, also existiert mit Sicherheit der Remote-Zweig:
$ mkdir ../gitest
$ cd ../gitest
$ git clone https://github.com/example/proj.git
Cloning into proj...
remote: Counting objects: 1155, done.
remote: Compressing objects: 100% (383/383), done.
remote: Total 1155 (delta 741), reused 1155 (delta 741)
Receiving objects: 100% (1155/1155), 477.22 KiB | 877 KiB/s, done.
Resolving deltas: 100% (741/741), done.
$ cd projdir
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/dev-gml
remotes/origin/master
Ich habe versucht git update
, git pull
, git fetch --all
, git pretty-please
in allen möglichen Permutationen ...
git config --get remote.origin.fetch
produziert? Wenn nicht+refs/heads/*:refs/remotes/origin/*
, sollte es wahrscheinlich sein.+refs/heads/master:refs/remotes/origin/master
mitmaster
statt*
Antworten:
Das Problem kann beim Überprüfen der
remote.origin.fetch
Einstellung festgestellt werden(Die Zeilen, die mit beginnen,
$
sind Bash-Eingabeaufforderungen mit den von mir eingegebenen Befehlen. Die anderen Zeilen sind die resultierende Ausgabe).Wie Sie sehen, wurde in meinem Fall die Fernbedienung so eingestellt, dass sie den Hauptzweig spezifisch und nur abruft. Ich habe es wie folgt behoben, einschließlich des zweiten Befehls zum Überprüfen der Ergebnisse.
Der Platzhalter
*
bedeutet natürlich alles unter diesem Pfad.Leider habe ich diesen Kommentar gesehen, nachdem ich ihn bereits durchgearbeitet und die Antwort durch Ausprobieren gefunden hatte.
quelle
--replace-all
Parameter hinzufügen , um alle Werte in der Konfiguration für meineremote.origin.fetch
git clone <url> --branch <branch> --single-branch [<folder>]
git clone ... --depth 1
Ich hatte dieses Problem heute auf einem Repo.
Es war nicht das
+refs/heads/*:refs/remotes/origin/*
Problem gemäß der Top-Lösung.Das Symptom war einfach das
git fetch origin
odergit fetch
schien einfach nichts zu tun, obwohl es entfernte Zweige gab, die abgerufen werden konnten.Nachdem ich viele Dinge ausprobiert hatte, entfernte ich die Ursprungsfernbedienung und stellte sie neu her. Das scheint es behoben zu haben. Ich weiß nicht warum.
entfernen mit:
git remote rm origin
und neu erstellen mit:
git remote add origin <git uri>
quelle
remote.origin.fetch
dh+refs/heads/*:refs/remotes/origin/*
. Die obige Lösung hat mir geholfen.git remote update origin
arbeitete für mich. Ich denke, etwas muss erfrischt werden?git remote update origin
hat bei mir nicht funktioniert, aber das Entfernen und Hinzufügen der Fernbedienung hat funktioniert.Remote-Update
Du musst rennen
oder
Anschließend können Sie
git branch -r
die Remote-Zweige auflisten.Kasse einer neuen Filiale
So verfolgen Sie einen (neuen) Remote-Zweig als lokalen Zweig:
oder (manchmal funktioniert es nicht ohne das Extra
remotes/
):Hilfreiche Git Cheatsheets
quelle
git fetch
gefolgt vongit branch -a
nicht alle Zweige angezeigt werden. Ich musste mein Arbeitsverzeichnis löschen und neu klonen, um den Zweig zu sehen, dendev-gml
ein Mitarbeiter erstellt hat. Diesmal hat es funktioniert, aber wir werden uns oft verzweigen!Edit:
sehr gut funktioniert haben könnte. Es ist das, was ich versuchen würde, wenn ich immer noch vor dem Problem stünde. HTHgit remote update origin
. Das machte den fehlenden Zweig über sichtbargit branch -l -r
. (Ich habe es mir angesehengit config --get remote.origin.fetch
und die Ausgabe war+refs/heads/*:refs/remotes/origin/*
wie erwartet.)Schreiben Sie es vom Terminal
es funktioniert gut.
quelle
Um es genauer zu machen Erstellen Sie einen Verfolgungszweig. Dies bedeutet, dass Sie jetzt einen Remote-Zweig verfolgen.
Danach kannst du
Dann arbeiten Sie an diesem Zweig
Nachdem Sie Änderungen an der Verzweigung vorgenommen haben. Sie können Git-Abruf und Git-Zusammenführung mit Ihrem Remote-Tracking-Zweig durchführen, um Ihre Änderungen zusammenzuführen und wie unten beschrieben in den Remote-Zweig zu verschieben.
Hoffe es hilft und gibt dir eine Idee, wie das funktioniert.
quelle
Ich hatte ein ähnliches Problem, aber in meinem Fall konnte ich zum Remote-Zweig ziehen / drücken, aber
git status
den lokalen Zweigstatus für den Remote-Zweig nicht anzeigen.Auch in meinem Fall
git config --get remote.origin.fetch
hat nichts zurückgegebenDas Problem ist, dass in der
.git/config
Datei in der Abrufzeile des jeweiligen Remote-Blocks ein Tippfehler aufgetreten ist . Wahrscheinlich etwas, das ich zuvor versehentlich hinzugefügt habe (manchmal schaue ich mir diese Datei direkt an oder bearbeite sie sogar)Überprüfen Sie also, ob Ihr Remote-Eintrag in der
.git/config
Datei korrekt ist, z.quelle
Dies kann auf einen Moment mit der Gesichtspalme zurückzuführen sein: Wenn Sie zwischen mehreren Klonen wechseln, finden Sie sich leicht im falschen Quellbaum wieder und versuchen, einen nicht vorhandenen Zweig zu ziehen. Es ist einfacher, wenn die Klone ähnliche Namen haben oder die Repos unterschiedliche Klone für dasselbe Projekt von jedem von mehreren Mitwirkenden sind. Ein neuer Git-Klon scheint dieses "Problem" offensichtlich zu lösen, wenn das eigentliche Problem darin besteht, den Fokus oder den Arbeitskontext oder beides zu verlieren.
quelle
Ich musste in meine GitExtensions Remote Repositories gehen, da hier nichts zu funktionieren schien. Dort sah ich, dass in 2 Filialen kein Remote-Repository konfiguriert war. Nach dem Einstellen sieht es wie folgt aus
Hinweiszweig
noExternal3
zeigt weiterhin an, dass kein Remote-Repository vorhanden ist. Ich bin mir nicht sicher, welche Kombination von Bash-Befehlen das gefunden oder angepasst hätte.quelle
Hatte heute das gleiche Problem beim Einrichten meines Repos von Grund auf neu. Ich habe alles versucht, nichts hat funktioniert, außer den Ursprung zu entfernen und ihn wieder hinzuzufügen.
quelle
Wir hatten das gleiche Problem und Sie müssen verwenden
Hoffe, dies hilft jemandem, der vor dem gleichen Problem steht
quelle