Linux Labs

Автоматизация: Git и Ansible / Ступень 1 из 6

История правок конфигурации

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 4 из 6 · на машине · 9 мин

Отменить коммит и сохранить историю

Плохой коммит отменяют новым коммитом. История остаётся такой, какой её уже видели все.

Своя правка тоже записывается коммитом. git add <файл> отмечает файл для записи, git commit -m "сообщение" записывает снимок с твоим именем — в этом репозитории оно уже задано: student.

git revert <хэш> читает изменения коммита и записывает новый коммит, который их отменяет. Более поздние коммиты, даже в том же файле, он не трогает. Ключ --no-edit берёт готовое сообщение Revert "…" — без него git откроет редактор для сообщения.

Историю можно и переписать: git reset --hard <хэш> отводит ветку назад и выбрасывает все коммиты после этого хэша, вместе с чужими правками. История конфига — журнал для всех админов, поэтому на общем конфиге коммит отменяют revert. Способы отката рядом — в Вики.

Проверь себя 1 вопрос

В истории четыре коммита. Ты отменяешь второй сверху командой git revert. Что покажет потом git log --oneline?

  • Так ветку отвёл бы назад git reset --hard <хэш>. revert более поздние коммиты не трогает — ни их, ни их правки.

  • revert ничего не удаляет: он добавляет коммит с обратными изменениями. Пропадают коммиты при git reset --hard.

  • Записанный коммит в git не меняется: хэш зависит от содержимого. revert пишет новый коммит сверху, старый остаётся как был.

git revert записывает новый коммит с обратными изменениями и ничего не удаляет из истории. Отменённый коммит и всё после него остаются в git log, а сверху появляется «Revert …».

Отменить можно и коммит из середины истории: git наложит обратную правку поверх всех, что были после него, если они не трогали те же строки.

Лимит 2m оказался ошибкой: Anna снижала его для проверки и забыла вернуть. После неё Oleg добавил в тот же файл /health — эту проверку опрашивает мониторинг. Коммит меняет только файлы: работающий nginx перечитает их после sudo nginx -t и sudo systemctl reload nginx.

Упражнение · сделать

Отмени коммит с лимитом

В /etc/nginx отмени коммит, который снизил лимит загрузки в conf.d/lab-site.conf, так, чтобы история осталась прежней, а проверка /health из более позднего коммита — на месте. Примени конфиг: загрузка 5 МБ на http://127.0.0.1:8080/upload должна проходить.

Войти и начать Машина доступна после входа

Цели · 0 из 2

  • Отменить коммит с лимитом, не переписывая историю ещё не выполнена
  • Применить конфиг в работающем nginx, сохранив /health ещё не выполнена

Цели шага

0 из 2
  • Отменить коммит с лимитом, не переписывая историю — ещё не выполнена
  • Применить конфиг в работающем nginx, сохранив /health — ещё не выполнена
Ubuntu 24.04

Цели шага

0 из 2
  • Отменить коммит с лимитом, не переписывая историю — ещё не выполнена
  • Применить конфиг в работающем nginx, сохранив /health — ещё не выполнена
Загрузка…