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

#git #gitkraken

#git #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).

Есть идеи?

Ответ №1:

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

«C:/Users/Username/.gitconfig «: Доступ запрещен

Я удалил файл, теперь оба сообщения исчезли.

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

Ответ №2:

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

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

Комментарии:

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

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

Ответ №3:

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

Ответ №4:

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

Решение

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

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

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

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

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

Хорошо, если у вас все еще возникают проблемы, и вы УВЕРЕНЫ, что вам ничего не нужно в вашем рефлоге, ВКЛЮЧАЯ ВАШ ТАЙНИК, вы можете удалить все это сейчас и очистить (собрать мусор) висячие ссылки:

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

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