Ich bin mir ziemlich sicher, dass ich irgendwo in einem beliebten Git-Projekt gesehen habe, dass die Zweige ein Muster wie "feature / xyz" hatten.
Wenn ich jedoch versuche, einen Zweig mit dem Schrägstrich zu erstellen, wird folgende Fehlermeldung angezeigt:
$ git branch labs/feature
error: unable to resolve reference refs/heads/labs/feature: Not a directory
fatal: Failed to lock ref for update: Not a directory
Gleiches Problem für (mein erster Versuch):
$ git checkout -b labs/feature
Wie erstellt man in Git einen Zweig mit dem Schrägstrich?
HEAD
. Es sieht so aus, als ob git denkt, dass SieHEAD
ein Link zu dem Zweig sind,labs/feature
der noch nicht erstellt wurde. Ich habe keine Ahnung, wie dies hätte passieren können, aber es bedeutet, dass Ihr Versuch, einen Zweig zu erstellenfoo/bar
, der darauf basiert, nicht funktioniert. Hast du eine Idee, wie du nicht mehrHEAD
weiterkommst?.git/refs/heads
dh wenn Sie dies tun, sehen Siegit checkout -b feature/123
in IhremprojectRootFolder/.git/refs/heads
Verzeichnis ein Verzeichnis mit dem Namen:feature
In diesem Verzeichnis sehen Sie einen Zweig mit dem Namen123
. Wenn Sie später eine anderefeature/124
als innerhalb desfeature
Verzeichnisses erstellen , sehen Sie einen Zweig mit dem Namen124
HEAD
" Nice one @CBBaileyAntworten:
Sind Sie sicher, dass der Zweig
labs
noch nicht existiert (wie in diesem Thread )?quelle
foo
Namespace ' ' gelöscht ), aber nichtfoo
(der als Namespace für einen anderen Zweig dienen oder selbst ein Zweig sein könnte)pack-refs
alles, um Sie davor zu schützen.labs
Zweig und versuchte zu erstellenlabs/feature
, was Git zurückschreckte.Es ist möglich, hierarchische Verzweigungsnamen (Verzweigungsnamen mit Schrägstrich) zu haben. Zum Beispiel habe ich in meinem Repository solche Zweige. Eine Einschränkung ist, dass Sie nicht sowohl Zweig 'foo' als auch Zweig 'foo / bar' im Repository haben können.
Ihr Problem besteht nicht darin, einen Zweig mit einem Schrägstrich im Namen zu erstellen.
Die obige Fehlermeldung bezieht sich auf den Zweig 'labs / feature' und nicht auf 'foo / bar' (es sei denn, es handelt sich um einen Fehler beim Kopieren und Einfügen, dh Sie haben Teile der Sitzung bearbeitet). Was ist das Ergebnis von
git branch
odergit rev-parse --symbolic-full-name HEAD
?quelle
Manchmal tritt dieses Problem auf, wenn Sie bereits einen Zweig mit dem Basisnamen haben.
Ich habe es versucht:
Leider hatte ich bereits eine Filiale mit dem Namen
features
und bekam die Ausnahme des Fragestellers.Durch Entfernen des Zweigs wurde
features
das Problem behoben. Der obige Befehl funktionierte.quelle
In meinem Fall habe ich vergessen, dass es bereits einen unbenutzten
labs
Zweig gab. Das Löschen löste das Problem:Erläuterung:
Jeder Name kann nur ein übergeordneter Zweig oder ein normaler Zweig sein, nicht beide. Deshalb existieren die Zweige
labs
undlabs/feature
können nicht beide gleichzeitig existieren.Der Grund für dieses Verhalten ist, dass die Zweige im Dateisystem gespeichert sind und Sie dort auch keine Datei
labs
und kein Verzeichnislabs
auf derselben Ebene haben können.quelle
Ich könnte mich irren, aber ich dachte, dass Schrägstriche nur in Filialnamen vorkommen, wenn sie sich beispielsweise auf ein Remote-Repo beziehen
origin/master
.quelle