Ich bin mir nicht sicher, warum ich einen Zweig, an dem ich zuvor gearbeitet habe, nicht auschecken kann . Siehe die folgenden Befehle (Hinweis: co
ist ein Alias fürcheckout
):
ramon@ramon-desktop:~/source/unstilted$ git branch -a
* develop
feature/datts_right
feature/user_controlled_menu
feature/user_controlled_site_layouts
master
remotes/origin/HEAD -> origin/master
remotes/origin/develop
remotes/origin/feature/datts_right
remotes/origin/master
ramon@ramon-desktop:~/source/unstilted$ git co feature/user_controlled_site_layouts
error: pathspec 'feature/user_controlled_site_layouts' did not match any file(s) known to git.
Ich bin mir nicht sicher, was es bedeutet, und ich kann anscheinend nichts finden, was ich bei Google verstehen kann.
Wie checke ich diesen Zweig aus und was habe ich möglicherweise getan, um diesen zu brechen?
AKTUALISIEREN :
Ich habe diesen Beitrag gefunden und beim Laufen habe git show-ref
ich:
97e2cb33914e763ff92bbe38531d3fd02408da46 refs/heads/develop
c438c439c66da3f2356d2449505c073549b221c1 refs/heads/feature/datts_right
11a90dae8897ceed318700b9af3019f4b4dceb1e refs/heads/feature/user_controlled_menu
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/heads/master
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/remotes/origin/HEAD
e7c17eb40610505eea4e6687e4572191216ad4c6 refs/remotes/origin/develop
c438c439c66da3f2356d2449505c073549b221c1 refs/remotes/origin/feature/datts_right
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/remotes/origin/master
23768aa5425cbf29d10ff24274adad42d90d15cc refs/stash
e572cf91e95da03f04a5e51820f58a7306ce01de refs/tags/menu_shows_published_only
429ebaa895d9d41d835a34da72676caa75902e3d refs/tags/slow_dev
UPDATE im .git
Verzeichnis ( user_controlled_site_layouts
befindet sich im refs/heads/feature folder
):
$ ls .git/refs/heads/feature/
datts_right user_controlled_menu user_controlled_site_layouts
$ cat .git/refs/heads/feature/user_controlled_site_layouts
3af84fcf1508c44013844dcd0998a14e61455034
UPDATE ein git show 3af84fcf1508c44013844dcd0998a14e61455034
$ git show 3af84fcf1508c44013844dcd0998a14e61455034
commit 3af84fcf1508c44013844dcd0998a14e61455034
Author: Ramon Tayag <[email protected]>
Date: Thu May 12 19:00:03 2011 +0800
Removed site layouts migration
diff --git a/db/schema.rb b/db/schema.rb
index 1218fc8..2040b9f 100755
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20110511012647) do
+ActiveRecord::Schema.define(:version => 20110503040056) do
create_table "attachments", :force => true do |t|
t.string "name"
@@ -205,15 +205,6 @@ ActiveRecord::Schema.define(:version => 20110511012647) do
t.integer "old_id"
end
- create_table "site_layouts", :force => true do |t|
- t.string "name"
- t.text "description"
- t.text "content"
- t.integer "site_id"
- t.datetime "created_at"
- t.datetime "updated_at"
- end
-
create_table "site_styles", :force => true do |t|
t.text "published"
t.datetime "created_at"
git checkout refs/heads/user_controlled_site_layouts
?git branch -a
aber nicht in angezeigt wirdgit show-ref
. Existiert die Datei.git/refs/heads/feature/user_controlled_site_layout
tatsächlich? Wenn ja, was gibtcat .git/refs/heads/feature/user_controlled_site_layout
es?Antworten:
Versuchen Sie
git fetch
, dass Ihr lokales Repository alle neuen Informationen von github erhält. Es werden nur die Informationen über neue Zweige und kein tatsächlicher Code benötigt. Danachgit checkout
sollte das gut funktionieren.quelle
git fetch
ist nützlich , wenn Sie Ihr lokales Repository mit dem Remote - Repository müssen synchronisiert werden , aber Sie nicht wollen , um die Änderungen in Ihren Arbeitsordner verschmelzen.git checkout Branch
funktioniert das nicht. Bei mehreren Fernbedienungen ist nur der Name des Zweigs mehrdeutig und erfordert die Angabe von Remote / Zweig. Der Befehlgit checkout -b branch remote/branch
funktioniert in diesem Szenario.git fetch
könnte den Job machen. Möglicherweise werden jedoch nicht alle Zweige von der Fernbedienung abgerufen. Sie müssten das Abruf-Übereinstimmungsmuster festlegen. Siehegit config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
: stackoverflow.com/questions/11623862/…Ich habe diesen Fehler erhalten, als ich versucht habe, einen neuen Zweig auszuchecken:
Als ich es versuchte
git checkout origin/<BRANCH-NAME>
, bekam ich den abgetrennten KOPF:Schließlich habe ich Folgendes getan, um das Problem zu beheben :
quelle
git checkout --track origin/staging fatal: git checkout: --track and --no-track require -b
Git Version 1.5.6.5git checkout -b staging --track origin/staging
Ich habe diesen Fehler für einen Zweig erhalten, der entfernt war und keinen lokalen Verfolgungszweig hatte. Obwohl ich sicher bin, dass ich Remote-Filialen über eine einfache ausgecheckt habe
In der Vergangenheit musste ich diesen Fehler umgehen
Ich habe auch keine Ahnung, was ich getan habe, um mich in diese Situation zu bringen.
quelle
fetch = +refs/heads/*:refs/remotes/origin/*
Zeile so zu ändern , dass sie mit dem neuen Namen der Fernbedienung übereinstimmt. LOL. Vielleicht ist das Makandra passiert? Denn nachdem ich es repariert habe, wird es beim Auschecken des Zweigs erneut vom Ursprung abgerufen, obwohl ich viele Fernbedienungen habe.Wenn Sie einen Zweig mit gelöscht haben
git branch -D yourbranchname
Ihrem Repo und erneut geklont haben, müssen Sie möglicherweise Ihren lokalen Zweig erneut erstellen.Versuchen:
quelle
Ich habe die gleichen Fragen und habe einige Informationen von diesem Link erhalten: git fetch ruft nicht alle Zweige ab
Jetzt bin ich mir vielleicht nicht sicher, wie diese Situation passiert ist, zumindest können wir sie lösen:
Schritt 1. Überprüfen Sie Ihre Einstellung "remote.origin.fetch" wie folgt
Schritt 2. Ändern Sie "remote.origin.fetch", um alles abzurufen
Dann können Sie versuchen, "Git Pull" (vielleicht funktioniert auch "Git Fetch Origin", aber ich habe nicht versucht), um den gesamten Zweig zu bekommen.
quelle
Git Windows-Benutzer passen auf - ohne die Einstellung
--icase-pathspecs
oderGIT_ICASE_PATHSPECS = 1
env var wird bei git pathspecs in diesem Fall zwischen Groß- und Kleinschreibung unterschiedenist nicht dasselbe wie
quelle
--icase-pathspecs
Parameter zuerst oder zumindest vorher kommen muss-C <path>
Wenn der Name des Zweigs und Sie keine nicht festgeschriebene Datei haben, versuchen Sie dies
quelle
Ich habe das Problem beim Wechsel meiner Filiale festgestellt.
Ich habe einen Git Pull am aktuellen Zweig gemacht und dann versucht, den neuen auszuchecken, und es hat funktioniert
git pull // on your old branch git checkout <new_branch>
quelle
git pull
mehr als den aktuellen Zweig zu ziehen?Das hat es einfach für mich behoben :)
quelle
Ich habe das gleiche Problem, weil ich verwendet habe
git clone --depth=1
, was impliziert--single-branch
.Führen Sie eine abgeschlossene
git clone
wird es beheben.quelle
Ich habe das bekommen, als ich folgendes gemacht habe:
Als ich versuchte, das Verzeichnis einzuchecken, wurde dieser Fehler angezeigt.
Reparieren:
Ich habe das Repo in Git-Erweiterungen geöffnet. Ich habe gesehen, dass die Datei (mit dem alten Namen) inszeniert wurde. Aber da es nicht mehr existierte, konnte es nicht begangen werden.
Ich habe diese Datei einfach freigegeben.
Dann habe ich die Datei (diesmal korrekt benannt) erneut in git hinzugefügt und ohne Fehler festgeschrieben.
quelle
Ich hatte dieses Problem heute, das ich versuchte
git checkout foo
und bekamerror: pathspec 'foo' did not match any file(s) known to git.
Es stellte sich heraus, dass ich im falschen Repo war . Lektion gelernt: Überprüfen Sie, welches Repo Sie sich ansehen, bevor Sie ausflippen.
quelle
Ich habe diesen Fehler beim Auschecken eines Zweigs über Folgendes erhalten:
was ich vorher nicht ausgecheckt hatte. Es funktionierte nur, wenn die Fernbedienung explizit angegeben wurde:
Der Grund dafür war, dass ich 2 verschiedene Fernbedienungen (Ursprung + etw. Sonst) in git config konfiguriert hatte. Da ich die zweite Fernbedienung nicht brauchte, entfernte ich sie und voilá, es funktionierte. Die Alternative zum Festlegen der Standardfernbedienung über:
hat bei mir nicht funktioniert
quelle
Überprüfen Sie zunächst den übergeordneten Zweig. Geben Sie dann ein
Ich hoffe es hilft!.
quelle
Ich habe es behoben, indem ich meine Git-Konfigurationsdatei geändert habe. Überprüfen Sie die Konfigurationsdatei in Ihrem Git-Verzeichnis.
.git\config
Es hatte zuvor
Ich habe es behoben, indem ich es geändert habe
Beachten Sie, dass der Kopf nur auf einen Zweig zeigte, sodass er den Verweis auf andere vorhandene Zweige nicht finden konnte. Ich habe ihn in * geändert, damit alles im Ursprung überprüft wird.
quelle
Unter Windows wird git standardmäßig mit git installiert
Dies bedeutet, dass bei Git-Repo-Dateien die Groß- und Kleinschreibung nicht berücksichtigt wird. Um dies zu ändern, müssen Sie Folgendes ausführen:
Sie finden diese Konfiguration in der Datei .git \ config
quelle
Ich habe den Remote-Ursprung
url
aus einer anderen.git/config
Datei kopiert. Dabei.git/config
fehlte meine neue Datei in der folgenden Zeile im[remote "origin"]
AbschnittHinzufügen über der Zeile behoben
error: pathspec 'master' did not match any file(s) known to git.
quelle
Ich hatte das gleiche Problem. Ich dachte, ich hätte einen Zweig benannt,
foo
als ich versuchte:Ich bekam:
Dann habe ich den vollständigen Filialnamen ausprobiert:
dann arbeitete für mich.
quelle
Wenn es unter Windows passiert, liegt wahrscheinlich das Problem mit dem Dateinamen vor.
Ich hatte heute diesen Fehler - ich habe eine neue Datei erstellt, zu GIT hinzugefügt, dann habe ich einen Buchstaben im Dateinamen von unten nach oben geändert und konnte dann nichts mehr - festschreiben, zurücksetzen, Datei aus dem Repo löschen.
Die einzige Lösung, die ich gefunden habe, war, den Dateinamen wieder auf genau den gleichen Fall zu ändern, als ich diese Datei zu GIT hinzufügte, dann GIT zurückzusetzen, um diese Datei aus GIT zu entfernen, und dann den Dateinamen erneut zu ändern, wie ich wollte. Nach diesen Änderungen konnte ich mich zum Repo verpflichten und dann ohne Probleme pushen.
quelle
git mv
. Vermutlich haben Sie es so gemacht, weil es für mich über meine IDE (IntelliJ PhpStorm) fehlgeschlagen ist ...In meinem Fall habe ich ZWEI Zweig 1) Master (der für Live-Server ist) 2) Dev (Testserver). Ich hatte mehrere Fernbedienungen so eingestellt, dass sie Code auf den jeweiligen Server übertragen. Als ich versuchte, den Zweig zu wechseln, bekam ich den Fehler wie
error: pathspec 'master' did not match any file(s) known to git.
Sie können sie durch sehen
git remote -v
. Ich hatte andere Fernbedienungen außerorigin
Fernbedienungen von entferntgit remote remove <remote-name>
Dann
git fetch
Jetzt kann ich die Filiale von auschecken
git checkout <branch-name>
.quelle
Ich bin auf dasselbe Problem gestoßen, als ich zum ersten Mal mit Git herumgespielt habe. Beim Versuch meines ersten Commits ...
Ich habe den vom OP erwähnten Fehler erhalten ...
Ich dachte, ich hätte Git durch die Verwendung eines Schlüsselworts in der Festschreibungsnachricht verwirrt, also habe ich ein paar andere Wörter ausprobiert und den gleichen Fehler erhalten.
Schließlich habe ich in der Nachricht doppelte Anführungszeichen verwendet ...
Dies stellte sich als erfolgreich heraus ...
quelle
Ich hatte einen dummen Fehler gemacht, während des Festschreibens keine -m-Flagge anzugeben (lol passiert)
quelle
Ich hatte eine andere Grundursache
Ich hatte ein Skript, das im Grunde alle Zweige, die mit dem Jira-Ausgabeschlüssel im "PRJ-1234" übereinstimmen, unter allen Zweigen durchsucht, um einen Befehl zum Auschecken von Git-Zweigen für den übereinstimmenden Zweig auszuführen
Das Problem in meinem Fall war, dass zwei oder mehr Zweige denselben Jira-Schlüssel gemeinsam hatten und mein Skript daher mit dem oben genannten Fehler fehlschlug
Durch Löschen des alten nicht verwendeten Zweigs und Sicherstellen, dass nur ein einziger Zweig über die Jira-Schlüsselreferenz verfügt, wurde das Problem behoben
Hier ist mein Code für den Fall, dass jemand ihn verwenden möchte
Speichern Sie dies als
switchbranch.sh
Verwenden Sie es dann vom Terminal aus
./switchbranch.sh PRJ-1234
quelle
Keine dieser Antworten löste mein Problem:
Ich habe versucht, zurück zu gehen und das Commit für aufzubauen
Version object v2.0.1
. Zum Glück kam mir die Idee, den gesamten Hash-Code auszuprobieren, und es hat funktioniert! Was bedeutet, dass ich das falsche Ende des Hash-Codes verwendet habe.Wie oben gezeigt, müssen Sie für teilweise Hash-Codes das Front-End und nicht das Back-End angeben.
quelle
Ist mir passiert, nachdem ich eine nicht festgeschriebene Datei in Android Studio umbenannt habe.
Git schien die alte Version in seinem Repository zu haben, auch wenn sie nicht mehr existierte.
Also öffnete ich die Git-GUI von TortoiseGit, die mir die genaue Datei zeigte, die Probleme verursachte.
Danach habe ich die Datei aus dem Repository mit gelöscht
und das Problem war weg
quelle
In meinem Fall hatte ich eine Datei umbenannt, die den Fall der Datei änderte, dh SomeFile.js -> someFile.js
Ich denke, das hing mit dem Problem zusammen. Ein Git-Abruf hat das Problem nicht behoben.
Ich habe die Dateien aus meinem Projekt verschoben, einen Abruf durchgeführt und einen Push ohne sie ausgeführt. Dann holte ich sie, fügte sie wieder hinzu und drückte sie, und es funktionierte. Ich weiß nicht, ob all diese Schritte nötig waren, aber es hat letztendlich funktioniert.
quelle
In meinem Fall gebe ich das Submodul-Verzeichnis ein, ohne es zu tun
git submodule init
git submodule update
Git wurde also mit dem übergeordneten Ordner verknüpft, der diesen Zweig tatsächlich übersehen hat.
quelle
Überprüfen Sie, ob der Zieldateiname kein Tippfehler ist. Ich habe versucht, durch Tippen zu inszenieren
Aber ich habe nicht bemerkt, dass ich zwei Punkte verwendet habe. Aber dann tippe ich
Es klappt
quelle
Für mich war es ein Problem mit meinen Anmeldeinformationen
Nachdem ich einige der Antworten ausprobiert hatte, half mir einer von ihnen, das Problem zu lösen:
Beim Ausführen wurde
git fetch
der folgende Fehler ausgegeben:Ich musste lediglich meine IDE (in meinem Fall VS-Code) zwingen, sich meine Anmeldeinformationen zu merken:
Git hat sofort alle Änderungen synchronisiert und
git checkout <branche>
funktioniert jetzt einwandfrei !quelle
Ich bekam das gleiche
pathspec error
bei Git-Bash. Ich habe Tortoise Git unter Windows verwendet, um den Zweig zu wechseln / auszuchecken.quelle