Ich habe meine Repos von Bitbucket oder Github migriert. Ich denke nicht, dass dies wichtig ist, aber es ist das einzige, was anders ist ... Für eine Weile hatte ich zwei Fernbedienungen eingerichtet:
origin: bitbucket
github: github
Dann entfernte ich beide und zeigte auf Github:
git remote remove origin
git remote remove github
git remote add origin https://github....
Testschub des Entwicklungszweigs:
git push origin develop
Alles auf dem neuesten Stand, ok, gut.
Erstellen Sie wie gewohnt einen neuen Zweig für einige Arbeiten:
git checkout -b Feature/Name
Aktualisieren Sie eine oder zwei Dateien. Versuch, auf die Fernbedienung zu drücken:
git push origin Feature/Name
Dies führt zu dem Fehler:
Schwerwiegend: Feature / Name kann nicht in Verzweigung aufgelöst werden
Suchen Sie online nach diesem Problem, finden Sie einige Informationen dazu, wie Sie sicherstellen können, dass HEAD korrekt ist, und andere, um sicherzustellen, dass mein Zweigstellenname korrekt ist (obwohl der Zweig zu diesem Zeitpunkt noch nicht auf der Fernbedienung vorhanden ist). Kann nicht aufgelöst werden.
Führen Sie diesen Befehl aus:
git push --all -u
Dies brachte meinen Feature/Name
Zweig zu Github, aber ich sehe immer noch das gleiche Verhalten wie zuvor:
git push origin develop
git push origin Feature/Name
Das erste funktioniert, das zweite löst den gleichen Fehler aus.
Ich kann nicht herausfinden, warum ich diesen Fehler erhalte. Irgendwelche Ideen?
Feature/Name
? Sind Sie sicherFeature/Name
, dass es das gibt und das ist der ausgecheckte Zweig? Überprüfen Sie mitgit branch
.git branch
, um zu überprüfen, obFeature/Name
es lokal existiert? Vertraue keiner GUI oder IDE. Haben Sie den Fall auch richtig verstanden?git push origin Feature/Name:Feature/Name
?git push --all -u
ich den neuen Zweig in Github, konnte aber trotzdem nicht von lokal pushen, oder? Hier ist, was damit passiert ist ... der tatsächlicheSQLMigration/ReportFixes
Filialname ist und was in Github istSqlMigration/ReportFixes
. Also, jetzt kann ichgit push origin SqlMigration/ReportFixes
- warum wechselt Github das Gehäuse für mich? Agh.Antworten:
Ich hatte auch dieses Problem und es machte mich verrückt. Ich hatte so etwas wie
feature/name
abergit branch -a
zeigte es mirFEATURE/name
. Das Umbenennen, Löschen und Neuerstellen des Zweigs hat nicht funktioniert. Was hat es endlich behoben:Gehen in
.git/refs/heads
Sie sehen einen
FEATURE
Ordner. Benennen Sie es in umfeature
.quelle
Aufgrund meiner eigenen Tests und der Kommentare des OP denke ich, dass sie irgendwann das Gehäuse des Filialnamens vermasselt haben.
Erstens glaube ich, dass das OP auf einem Betriebssystem ohne Berücksichtigung der Groß- und Kleinschreibung wie OS X oder Windows ausgeführt wird. Dann haben sie so etwas gemacht ...
Beachten Sie den Gehäusedifferenz. Beachten Sie auch, dass sich der Fehler stark von dem unterscheidet, wenn Sie nur den Namen eingeben.
Da Github das Dateisystem zum Speichern von Zweigstellennamen verwendet, versucht es zu öffnen
.git/refs/heads/SqlMigration/ReportFixes
. Da das Dateisystem nicht zwischen Groß- und Kleinschreibung unterscheidet, wird es erfolgreich geöffnet.git/refs/heads/SqlMigration/ReportFixes
, wird jedoch verwirrt, wenn versucht wird, die Zweignamen zwischen Groß- und Kleinschreibung zu vergleichen, und sie stimmen nicht überein.Ich bin mir nicht sicher, wie sie in einen Zustand gekommen sind, in dem sich die lokale Niederlassung
SQLMigration/ReportFixes
und die entfernte Niederlassung befindenSqlMigration/ReportFixes
. Ich glaube nicht, dass Github den Namen des Remote-Zweigs durcheinander gebracht hat. Die einfachste Erklärung ist, dass jemand anderes mit Push-Zugriff den Namen des Remote-Zweigs geändert hat. Ansonsten haben sie irgendwann etwas getan, das es geschafft hat, die Fernbedienung mit dem Tippfehler zu erstellen. Wenn sie ihre Shell-Historie überprüfen, könnenhistory | grep -i sqlmigration/reportfixes
sie möglicherweise einen Befehl finden, bei dem sie das Gehäuse falsch eingegeben haben.quelle
Mit Git können Sie den aktuellen Zweig mit einem anderen Gehäuse auschecken und auf der Fernbedienung keine Referenz finden.
Ich habe es gerade auf die harte Tour herausgefunden.
quelle
> git branch
und zu überprüfen, ob in Ihrer Filiale ein * daneben steht.Ähnliches ist mir passiert. Ich habe einen Zweig namens "Feat / name" erstellt. Ich habe versucht, es zu schieben mit:
Ich habe den gleichen schwerwiegenden Fehler wie Sie:
Um dies zu lösen, habe ich einen neuen Zweig erstellt, da nur sehr wenige Dateien betroffen waren. Dann habe ich meine Zweige aufgelistet, um den falschen zu löschen, und es wurde ohne Kappe angezeigt:
Ich hatte vorher Kappen benutzt, aber nie beim ersten Charakter. Es sieht so aus, als würde es git nicht gefallen ...
quelle
Es wird zwischen Groß- und Kleinschreibung unterschieden. Stellen Sie einfach sicher, dass die erstellte Filiale und die Push-to-Filiale beide im selben Kapital sind.
Beispiel:
FALSCHE Vorgehensweise:
RICHTIGE Vorgehensweise:
quelle
Vielleicht hast du vergessen, Git Fetch auszuführen? Es ist erforderlich, Daten vom Remote-Repo abzurufen! Versuche zu rennen
git fetch remote/branch
quelle
In meinem Fall hatte ich einen Zweigordner (oder wie auch immer er genannt wird) mit Großbuchstaben, dann erstelle ich einen neuen mit Differenzbuchstaben (Kleinbuchstaben), aber git erstellt den Zweig tatsächlich mit Großbuchstaben.
Ich habe einen Zweig wie
feature-ABC/branch1
zuvor erstellt und ihn verschoben. Dann erstelle ich eine Verzweigungfeature-abc/branch2
(beachte das ABC in Kleinbuchstaben) und versuche, sie mit Remote auf Remote zu übertragen,git push --set-upstream origin feature-abc/branch2
und erhalte den Fehler "Kann nicht in Verzweigung aufgelöst werden". Also ichgit branch
und sehe, dass es tatsächlichfeature-ABC/branch2
stattfeature-abc/branch1
für mich geschaffen hat. Ich checke erneut mit ausgit checkout feature-ABC/feature2
und drücke es mit dem Großbuchstaben (feature-ABC/feature2
), um es zu lösen.quelle
Ich hatte das gleiche Problem, das darauf zurückzuführen war, dass ich mit einem falschen Gehäuse verzweigte. git lass mich zum Zweig mit falschem Gehäuse wechseln, dh
feature/Name
stattfeature/name
. Wir haben eine einfachere Lösung gefunden als oben aufgeführt:git checkout master (or develop)
git checkout feature/name
<mit korrektem Gehäusegit push
quelle
Ich löste dies in Windows 10 unter Verwendung cmd statt GitBash .
Es hat mit der Groß- und Kleinschreibung von Zeichen zu tun und wie Git und Befehlszeilen damit umgehen.
quelle
Möglicherweise haben Sie einen ähnlichen Zweig erstellt, jedoch in Bezug auf die Groß- und Kleinschreibung. Dann müssen Sie Folgendes ausführen:
git branch -D <name-of-different-case-branch>
und dann erneut versuchen zu drücken.
quelle
Leicht modifizierte Antwort von @Ty Le:
Für mich waren keine Änderungen an den Dateien erforderlich. Ich hatte einen Zweig mit dem Namen "Feature / ..." und beim Hochschalten des Upstreams habe ich den Titel in "Feature / ..." geändert (der Fall des ersten Buchstabens wurde in den unteren geändert ).
quelle
Ich hatte gerade auch dieses Problem und meine normalen Zweige beginnen mit,
pb-3.1-12345/namebranch
aber ich habe versehentlich die ersten beiden Buchstaben groß geschriebenPB-3.1/12345/namebranch
. Nachdem ich den Zweig umbenannt hatte, um Kleinbuchstaben zu verwenden, konnte ich den Zweig erstellen.quelle
für mich nannte ich branch als
Alles was ich tun musste ist bei der Verwendung
schreiben
wie ich früher Zweige mit dem Kleinbuchstaben r in rel erstellt habe.
Also, was hat dieses Problem verursacht?
Als ich
.git/refs/heads
Inhalte auflistete , fand ich sieaber nein
Relx.x
!und drinnen
bug
und drinnenbug
meiner Filiale.Also, git versuchen, ein Verzeichnis mit demselben Namen, aber unterschiedlichen Groß- und Kleinschreibung zu erstellen
Das System unterscheidet jedoch nicht zwischen Groß- und Kleinschreibung.
Das hat dieses Problem verursacht!
quelle
Hatte das gleiche Problem mit verschiedenen Gehäusen.
Habe einen Checkout für die Entwicklung (oder den Master) durchgeführt und dann den Namen (den falschen Namen) in etwas anderes wie Test geändert.
Ändern Sie dann den Namen wieder in den richtigen Namen
Kasse dann zum Zweig mit dem richtigen Namen
dann funktionierte es, um zum entfernten Zweig zu pushen
quelle
Für mich war das Problem, dass ich Git und mein MacOS-Dateisystem auf zwei verschiedene Groß- und Kleinschreibung eingestellt hatte. Mein Mac wurde mit APFS formatiert / unterscheidet zwischen Groß- und Kleinschreibung : NEIN, aber ich hatte irgendwann meine Git-Einstellungen umgedreht, um ein seltsames Problem mit der Benennung von Xcode-Image-Assets zu überwinden , also git config --global core.ignorecase false . Durch Zurückdrehen wurden die Einstellungen ausgerichtet, der Zweig neu erstellt und durch Drücken wieder auf Kurs gebracht.
git config --global core.ignorecase true
Gutschrift: https://www.hanselman.com/blog/GitIsCasesensitiveAndYourFilesystemMayNotBeWeirdFolderMergingOnWindows.aspx
quelle
Ich hatte das gleiche Problem, wurde aber gelöst. Ich habe festgestellt, dass der Name der Filiale zwischen Groß- und Kleinschreibung unterscheidet. Der Hauptzweig in GitHub ist 'master', während es in meinem gitbash-Befehl 'Master' ist. Ich habe Master im lokalen Repository in Master umbenannt und es hat funktioniert! 😀😀
quelle
Ich stieß auf dasselbe Problem und bemerkte, dass ich das Gehäuse beim Auschecken der Filiale verwechselt hatte. I checked out
branchName
statt ,BranchName
und wenn ich auf Remote zu drücken versuchte, bekam ich den gleichen Fehler.Die Reparatur:
Durch das Einstellen des Upstreams auf den richtigen Namen wurde der richtige Zweig auf github aktualisiert und ich konnte dann den richtigen Zweignamen mit auschecken
Und es sollte mit Ihrem letzten Push auf dem neuesten Stand sein.
quelle
Wenn Sie sich in einer lokalen Niederlassung befinden, können Sie die Niederlassung "Feature / Name" in "Feature / Name" umbenennen.
git -m feature/Name
Wenn Sie Probleme haben
git push
, eine Kasse in einem anderen Zweig (z. B. Entwickeln) durchzuführen und zum umbenannten Zweig zurückzukehrengit checkout feature/Name
und versuchen Sie es erneut
git push
quelle