Ich bin gerade auf ein Problem gestoßen, das ich noch nie zuvor gesehen habe, und kann keine Hilfe finden.
Ich betreibe ein Git-Master-Repo auf der Live-Website in unserer Hosting-Umgebung und ein Bare-Origin-Repo auf demselben Server. Alle unsere Entwickler-Commits gehen an den Bare-Origin-Master, der einen Post-Receive-Hook hat, um jeden Commit an das Master-Repository zu pushen, sodass sich der Push in den Live-Site-Dateien widerspiegelt. Das einzige Ärgerliche ist, dass wir jedes Mal, wenn wir WordPress-Updates erhalten, das Master-Repo festschreiben und es dann zurück zum Ursprungs-Repo schieben müssen, damit unsere Entwickler diese aktualisierten Dateien herunterladen können.
Problem: Heute wollte ich ein WordPress-Plugin-Update übertragen, und das Übertragen funktionierte gut, aber der Push gab den folgenden kryptischen Fehler, zu dem ich keine Hilfe finden kann:
git push origin master
Counting objects: 344, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (323/323), done.
Writing objects: 100% (344/344), 1.76 MiB | 5.61 MiB/s, done.
Total 344 (delta 237), reused 14 (delta 1)
remote: Resolving deltas: 100% (237/237), completed with 226 local objects.
remote: Running post-receive (git pull origin master):
remote: error: index uses ▒yz▒ extension, which we do not understand
remote: fatal: index file corrupt
(Die seltsamen Symbole um die Buchstaben “yz” lauten als “<B3>yz<AC>
” wenn ich git diff starte)
Wenn ich laufe git status
auf master (kann nicht auf origin ausgeführt werden, da es sich um ein bloßes Repo handelt), werden die letzten beiden Ausgabezeilen wiederholt. Wenn ich laufe git log
Auf beiden Repos sehen sie normal aus, aber der Ursprung ist natürlich ein Commit hinter dem Master, weil das Commit zum Master funktioniert hat, aber das Pushen zum Ursprung fehlgeschlagen ist.
Ich habe noch nie von dieser “yz”-Erweiterung gehört, und soweit ich das beurteilen kann, hat auch niemand sonst etwas davon gehört. Alles, was ich getan habe, war ein Commit und ein Push, und der Push ist fehlgeschlagen. Wir verwenden keine solche “yz”-Erweiterung, wir verwenden Vanilla Git, machen sehr einfache Pushs und Pulls, unser Post-Receive-Hook ist etwa ein 5-Zeilen-Skript, das einfach jeden Commit automatisch vom Ursprung zum Master pusht und die Dateiberechtigungen auf zurücksetzt Stellen Sie sicher, dass sie vom Webserver gelesen werden können. Das einzig Seltsame, was wir tun, ist die Verwendung von Git, um eine WordPress-Site für die Versionskontrolle zu verwalten. Alle Entwickler verwenden TortoiseGit unter Windows ohne spezielle Einstellungen oder Plugins.
Ich habe viele Fragen und Antworten zu beschädigten Indizes gesehen, aber nichts dergleichen.
Ich habe noch nichts ausprobiert, da ich mir nicht sicher bin, was ich tun soll, die Interna von Git nicht verstehe und nichts kaputt machen möchte, aber wir müssen in der Lage sein, zu ziehen und zu drücken, und können dies nicht, bis die Repos vorhanden sind wieder synchron.