Я только что столкнулся с проблемой, с которой я никогда не сталкивался, и не могу найти никакой помощи.
Я запускаю мастер-репо git на живом веб-сайте в нашей среде хостинга и на голом источнике. репо на том же сервере. Все наши разработчики передают go голому мастеру-источнику, который имеет хук пост-получения для pu sh каждый коммит в мастер-репо, так что pu sh отражается в файлах живого сайта. Единственное неудобство заключается в том, что всякий раз, когда мы получаем обновления WordPress, мы должны фиксировать мастер-репо, а затем возвращать его в исходное репо, чтобы наши разработчики могли загрузить эти обновленные файлы.
Проблема: сегодня я пошел, чтобы зафиксировать обновление плагина WordPress, и коммит работал нормально, но pu sh выдал следующую ошибку crypti c, по которой я не могу найти никакой помощи:
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
(странные символы вокруг букв "yz" читаются как "<B3>yz<AC>
", когда я запускаю git diff)
Если я запускаю git status
на мастере (не может быть запущен на Первоначально, поскольку это голый репо), он повторяет последние две строки вывода. Если я запускаю git log
на обоих репозиториях, они выглядят нормально, но источник, конечно же, один коммит за мастером, потому что фиксация на мастере сработала, но толкание к источнику не удалось.
Я никогда не слышал об этом Расширение "yz" раньше, и, насколько я могу судить, больше ни у кого нет. Все, что я сделал, было коммитом и пу sh, а пу sh провалился. Мы не используем никакого такого расширения "yz", мы используем vanilla Git, делаем очень обычные c нажатия и извлечения, наш хук post-receive состоит из 5-строчного скрипта, который просто автоматически передает каждый коммит от источника к мастеру и сбрасывает права доступа к файлам, чтобы обеспечить их чтение веб-сервером. Единственная странная вещь, которую мы делаем, - это использование Git для управления сайтом WordPress для контроля версий. Все разработчики используют Tortoise Git на Windows без каких-либо специальных настроек или каких-либо плагинов.
Я видел множество вопросов и ответов о поврежденных индексах, но ничего подобного.
Я еще ничего не пробовал, так как я не уверен, что делать, не понимаю внутренности Git и не хочу ничего ломать, но нам нужно уметь тянуть и пу sh и не может, пока репозитории снова не будут синхронизированы c.