Ошибка «не удалось найти совместимый репозиторий» в репозитории gitkraken

У меня есть репозиторий, которым я пользуюсь годами через GitKraken. Я просто использовал CLI, чтобы назначить тег (используя код git tag -a v0.7.1 -m "my version 0.7.1" ea27f3b3ab882e58cbb5995f5d8638a200676a43, затем git push --tags) репозиторию, и после этого GitKraken не будет его открывать. Он говорит, что там нет репозитория, и спрашивает, хочу ли я инициализировать новый репо.

С другими моими репозиториями проблем нет. Кроме того, это репо отлично работает из командной строки. Я пробовал удалить папку вручную, затем снова клонировать ее с github в то же место, но это не помогло. Я также пробовал git reset --hard локально, но безрезультатно. Некоторый поиск в Google показывает такие вещи, как длинные имена путей к глубоко вложенным файлам, но у меня этого нет (и я на MacOS, а не на Windows).

Есть идеи?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
0
6 085
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Эту проблему решил Джейк из команды GitKraken в Slack GitKraken. Я опубликую решение здесь, если оно может помочь кому-то в будущем.

Оказалось, что в моем репозитории было два искаженных ref, один в мою ветку master, другой в тот тег v0.7.1, о котором я упоминал выше. Удаление тега и основной ветки решило проблему.

и как вы нашли решение? Я имею в виду, что у меня похожая проблема, но я не знаю, как ее решить

Panagiss 09.05.2020 16:51

Я удалил основную ветку и самый последний тег

Michael K. Borregaard 10.05.2020 17:12

Я получил ту же ошибку, когда пытался открыть репозиторий. Когда я попытался клонировать любой репозиторий, я получил сообщение:

«C:/Users/Имя пользователя/.gitconfig»: доступ запрещен

Удалил файл, теперь оба сообщения пропали.

Любой, кто попытается это сделать, должен сохранить файл в другом месте на всякий случай.

Чтобы решить эту проблему, я использовал код Visual Studio, я открыл его в среде IDE и использовал расширение, чтобы зафиксировать все файлы внутри папки. Вот ссылка на найденное решениеСсылка на сайт

У меня была такая же проблема с GitKraken. Он будет продолжать отображать это сообщение «совместимый репозиторий», даже если он загрузит репо и позволит мне создавать и просматривать коммиты. Однако примерно через минуту он выгружает репо и начинает пытаться загрузить его снова, но просто зависает, пытаясь загрузить. Другие инструменты (Giggle, gitg, git-gui и git CLI) работали нормально.

Решение

Копнув немного глубже, я обнаружил, что, видимо, что-то испортилось в моем рефлоге. Вы можете проверить файлы в .git/logs/refs/heads/* и .git/logs/refs/remotes/*/* на наличие строк, которые выглядят крайне необычно. Все строки должны выглядеть примерно одинаково (от-хеш, до-хэш, метка времени, пользователь, сообщение и т. д.). Поврежденные строки в моем журнале содержали множество странных символов и были примерно в 4 раза длиннее других строк. Очень очевидно.

Я также нашел некоторые объекты с нулевым байтом, которых не должно быть. Это временные файлы, которые должны были быть заполнены данными или удалены, но не были по... причинам. Их можно смело удалять.

find .git/objects -size 0 -type f -delete

Ядерный вариант

Чтобы мой GitKraken снова заработал, мне нужно выбрать вариант Nuclear Option.

Хорошо, если у вас все еще есть проблемы и вы ОПРЕДЕЛЕННЫЙ, что вам ничего не нужно в вашем журнале ссылок, ВКЛЮЧАЯ ВАШ ШКАФ, вы можете истечь все это сейчас и очистить (собрать мусор) оборванные ссылки:

git reflog expire --expire=now --all
git gc --prune=now

Ну, я предполагаю, что есть еще более экстремальный шаг, в котором вы можете удалить репо и повторно клонировать, но вы потеряете все локальные ветки, тайники и невыполненные коммиты. Меня это не устраивало.

Другие вопросы по теме