#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
Ну, я предполагаю, что есть еще более экстремальный шаг, поскольку вы можете удалить репозиторий и повторно клонировать, но вы потеряете все локальные ветки, тайники и неотправленные коммиты. Я не был в порядке с этим.