git устарел после восстановления Time Machine
Я только что вернул свой Mac обратно в его состояние 10 дней назад с помощью Time Machine. Затем я обновил папку репозитория моего сайта назад до 1 дня назад, чтобы продолжить кодирование.
Когда я бегу git status
или же gitk
, он показывает 10-дневное представление, а не текущее представление, поэтому в нем отсутствуют некоторые недавние коммиты. Где находится папка / файл, который я должен обновить, чтобы получить текущие данные?
В случае, если это уточнение необходимо, мой origin
на Github имеет коммиты с 6/10, 6/7, 6/1 и 5/30. Мой неисправный git status
показывает только коммиты 6/1 и 5/30, а другие файлы просто перемещаются в области подготовки, как будто никогда не фиксируются.
2 ответа
Причина проблемы
Моя локальная папка содержит скрытую папку.git, которая является локальным хранилищем (спасибо @JonathanLeffer). Time Machine не восстановила папку.git, когда я выбрал все файлы в своем хранилище для ручного восстановления.
Решение
Я вручную восстановил.git в его состояние по состоянию на 1 день назад, убедившись, что для всех файлов выбрано "заменить", чтобы старые файлы были перезаписаны новыми. После запуска gitk
все коммиты видны для 6/10, 6/7, 6/1 и 5/30.
Я не знаком с машиной времени, но это немного походит на то, что может случиться, когда вы разделяете репо на нескольких компьютерах с Dropbox или Spideroak или тому подобное. Система в основном пытается не отставать от вашей работы в репо, но она оптимизирована для фоновой работы и не мешает вашему активному использованию компьютера, поэтому, если она не отслеживается на 100%, все изменения файлов в вашей папке.git с одного компьютера на другой, вы можете получить репо, который сломан. Мне интересно, вызвало ли подобное действие в вашей системе резервного копирования такую же проблему?
В любом случае - попробуйте создать новую пустую папку репо и вытащить новую свежую копию проекта из github.