Иногда возникает вопрос, как найти, какие изменения в коде были сделаны предыдущим администратором. Решил написать рецепт, чтобы не придумывать как объяснить каждый раз. Потребуется git
Идем на текущем сайте в корне в version.php и ищем там строку вида $version = 2021051707.03 - это число максимально точно указывает на текущую версию кода.
Вызываем git clone --no-checkout https://github.com/moodle/moodle my-moodle , в папке my-moodle появится пустой репозиторий moodle
Переходим в эту папку cd my-moodle
Вызываем git log -S"$version = 2021051707.03" --all -- version.php
Эта команда ищет появление и исчезновение этой строки во всей истории изменений файла version.php. Может быть долгой
В большинстве случаем поиск выдаст два commit.
Более ранний - это коммит соответствующий релизу, когда эта строка появилась первый раз. Более поздний - это коммит соответствующий следующему релизу, когда эта строка была убрана, и вместо неё указана другая версия. Можно посмотреть подробнее (крутить стрелками вверх и вниз, выход q), вызвав
git log -S"$version = 2021051707.03" --all -p -- version.php
Нам потребуется более ранний из коммитов. Нужно скопировать значение строки commit или переписать первые 8 знаков.
После этого переключиться на нужный commit, вызвав
git reset --soft 72b40877 или git reset --soft 72b408772c93cb6b7b35e071047236d4c04677f3
Команда с параметром --soft не меняет состояние файлов в папке, просто перемещает указатель на нужный commit
Теперь нужно скопировать в эту папку файлы все файлы текущего сайта (за исключением папки .git, если такая была на сервере).
Команда git status покажет изменения в текущей папке относительно состояния репозитория.