wake-up-neo.net

Git fatal: Die Referenz hat ein ungültiges Format: 'refs / heads / master

Ich verwende Dropbox, um ein git -Repository zu synchronisieren, aber jetzt, wenn ich es versuche und Push, erhalte ich eine Fehlermeldung:

fatal: Reference has invalid format: 'refs/heads/master (MacBook-Pro's conflicted copy 2012-10-07)'

Anscheinend hat Dropbox einen Konflikt festgestellt und eine Kopie erstellt. Ok, kein Problem, also habe ich die in Konflikt stehende Datei gelöscht. Trotzdem wird der obige Git-Fehler angezeigt.

$ git checkout master
    M   index.html
    Already on 'master'
$ git add .
$ git commit -a -m "Cleanup repo"
    [master ff6f817] Cleanup repo
    1 file changed, 5 insertions(+), 5 deletions(-)
$ git Push
    fatal: Reference has invalid format: 'refs/heads/master (MacBook-Pro's conflicted copy 2012-10-07)'
    The remote end hung up unexpectedly`

Wie kann ich das beheben? Vielen Dank.

101
Justin

erstellen Sie ein Backup Ihres Repos, wenn Sie sich bei diesem nicht sicher sind, da diese Befehle irreversibel sind.

gehen Sie zuerst in Ihr Repo-Verzeichnis.

cd myrepo

suchen Sie dann rekursiv nach den in Konflikt stehenden Dateien und löschen Sie sie

find . -type f -name "* conflicted copy*" -exec rm -f {} \;

zuletzt entfernen Sie alle "widersprüchlichen" Referenzen aus der gepackten Referenzdatei von git

awk '!/conflicted/' .git/packed-refs > temp && mv temp .git/packed-refs
178
Lane

Die in Konflikt stehende Datei könnte sich an mehreren Stellen befinden. Ich würde Folgendes untersuchen:

.git/logs/refs/remotes/Origin/
.git/logs/refs/heads/
.git/refs/remotes/Origin/
.git/refs/heads/

Oder Sie suchen überall im Unterverzeichnis .git: find . -name '*conflicted*'

Oder listen Sie die aktiven Zweige mit git branch -a Auf und löschen Sie (git branch -d) Alles, was verdächtig ist.

42
Marco Leogrande

Dies passiert auch unserem Team, wenn mein Kollege seine Änderungen drückt und den PC herunterfährt, bevor Dropbox aktualisiert wird.

Ich habe es so einfach gelöst.

Löschte gerade die widersprüchliche Kopie. (XXXXs widersprüchliche Kopie JJJJ-MM-TT)

Und normal ziehen.

Beachten Sie, dass mein Kollege die Änderungen zuvor durcheinander gebracht hatte. Und er drückt seine Änderungen wieder. Diesmal kein Herunterfahren. :)

8
Hareen Laks

Ich konnte alle in Konflikt stehenden Dateien aus meinem .git-Ordner löschen, erhielt jedoch weiterhin Fehlermeldungen zu nicht mehr vorhandenen Dateien.

Das Update für mich öffnete sich .git/refs/packed_refs und Löschen von Zeilen, die den Text "widersprüchlich" enthielten.

7
Drew

Für mich gab es Fehler: fatal: Reference has invalid format: 'refs/tags/r0.2:3'

Sie können zur Datei / .git/packing_refs gehen und die Zeile für refs/tags/r0.2:3 Löschen.

Dann fing es an zu arbeiten. Aber warum es überhaupt passiert ist, weiß ich nicht.

1
Rajesh Paul

Ich habe den gleichen Fehler erhalten

fatal: Die Referenz hat ein ungültiges Format: 'refs/heads/somebranch (1)'

für den folgenden Befehl

git branch

Dann suchte ich mit dem Befehl nach einem falschen Namen (Zweigname, gefolgt von (1))

find . -name 'somebranch (1)'

Und es zeigte das folgende Ergebnis

./.git/refs/heads/somebranch (1)

Welches ist eine duplizierte Version von Somebranch IMO. Also entfernte ich dies, indem ich den Befehl find gefolgt von delete ausführte

find . -name 'somebranch (1)' -print -exec rm -rf {} \;

Dann wird der Verzweigungsbefehl erfolgreich ausgeführt

git branch
0
zeeawan

Versuchen Sie es mit einem git checkout master zuerst auf die gesunde, gut benannte Branche zu bekommen.

0
poke

Ich bin auf einen ähnlichen Fehler gestoßen wie

fatal: Reference has invalid format: 'refs/heads/user-search-api (Sithu's conflicted copy 2016-01-08)'

Durch einfaches Löschen der Datei .git/refs/heads/user-search-api (Sithu's conflicted copy 2016-01-08) im Remote-Dropbox-Repository wurde das Problem behoben.

0
Sithu