@AlexanDev

Перенес проект c Git неправильно, как исправить?

Как-то давно сделал бекап проекта на флешку (тупо скопировал проект с файлами и папкой .git) - отсюда все и пошло.
Теперь развернув бекап, на уже другом компьютере понял что не вижу файлов.
Но команда git status показывает их большими списками как новые и как удаленные.

>> git status
On branch dev

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   .env.example
        new file:   .gitattributes
        new file:   .gitignore
        new file:   app/.DS_Store

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   .env.example
        modified:   .gitattributes
        modified:   .gitignore
        modified:   app/.DS_Stor

Данные закоммитить тоже не могу: получаю

>> git commit -am "test"
error: invalid object 100755 5c23e2e24fc5d9e8224d7357dbb583c83884582b for 'artisan'
error: invalid object 100755 5c23e2e24fc5d9e8224d7357dbb583c83884582b for 'artisan'
error: Error building trees

Что делать?
  • Вопрос задан
  • 176 просмотров
Решения вопроса 1
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Плохая была идея копировать репозиторий как обычную папку. Лучше использовать встроенные средства гита, например упаковать в пакет. Ну либо создать архив zip и уже его копировать на флешку. Так ты хотя бы будешь знать, что данные записались правильно.

Сейчас я бы на твоём месте первым делом распаковал нужную ветку в рабочий каталог заново.
git reset --hard dev

Если выдаст ошибку, то значит внутренняя структура репозитория повреждена.
Можно попробовать запустить обслуживание.
git gc --auto

Вообще гит достаточно устойчив к повреждениям, так как это распределённая система и мы обычно храним несколько копий репозитория. Что мешало запушить копию репо на гитхаб? Или даже в другую папку на твоём компьютере. Можно даже запушить на флешку, и это будет надёжнее чем просто копировать, без проверки результата.

Если осталась исходная нормальная копия репозитория на другом компьютере, то лучше забрать её, чем пытаться вылечить эту копию. На старом компьютере сделай нормально push на гитхаб, а на новом компе разверни копию через clone. Это самый простой способ.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы