revert (відкат)
Також називають: відкат, відкотити, revert
Новий коміт, який скасовує попередній. Історія зберігає обидва, тож нічого не стирається. На змердженому pull request GitHub має кнопку `Revert`.
Revert скасовує зміну, додаючи новий коміт із протилежною дією: додані рядки прибираються, видалені повертаються. Початковий коміт лишається в історії, тож нічиї копії не ламаються, а кожен бачить, що скасували і чому. Тому це безпечний спосіб скасувати те, що вже потрапило в main. На GitHub змерджений pull request має кнопку Revert, яка готує новий pull request зі скасуванням для рев'ю.
Приклад
Банер весняного розпродажу вийшов з неправильними датами. Sofia натискає Revert у його pull request, скасування схвалюють і мерджать, і банер зникає, а історія зберігає обидва кроки.
Типові помилки
Чекати, що revert прибере лише частину зміни. Він скасовує весь коміт; якщо pull request містив дві зміни і одна з них була правильна, краще зробити невелике виправлення наперед.
Вивчити в курсі
- Перша зміна в браузері і як її відкотити через revert · Невелика зміна повністю у вебінтерфейсі GitHub: знайти файл, відредагувати його у вебредакторі GitHub, закомітити в нову гілку, бо main захищена, відкрити pull request, пройти перевірки й рев'ю, змерджити й викласти. А потім зробити git revert змердженої зміни кнопкою Revert на GitHub, розібратися, коли відкочувати, а коли виправляти вперед, і що продакту варто й не варто редагувати самостійно.
- Гілки в Git: паралельні версії проєкту · Що таке гілка в Git (git branch), чому робота йде в короткоживучих гілках поруч із main і як читати гілки на GitHub: перемикач гілок, ahead і behind, застарілі гілки, правила назв і графи з кількома доріжками.
- GitHub flow: малі гілки, швидкі мерджі · Цикл, у якому працює більшість продуктових команд: гілка від main, pull request, рев'ю й перевірки, мердж, деплой. Чому малі короткоживучі гілки безпечніші, що означають «змерджено» і «викладено», як фіча-флаги дають викласти незавершену роботу прихованою і як читати прогрес фічі зі списку pull requests.
- Релізи на GitHub і версії: теги, SemVer, changelog · Що таке тег Git, як читати номер версії на кшталт v1.4.1 (SemVer простими словами), як працюють релізи на GitHub і згенеровані release notes, чим вони відрізняються від changelog, як перевірити, чи є виправлення у версії, і чому «змерджено», «випущено» і «доступно всім» можуть бути трьома різними моментами.
- Злиття (git merge): мердж-коміт, squash і rebase на GitHub · Що робить мердж (git merge), три варіанти за кнопкою мерджу на GitHub (merge commit, squash and merge, rebase and merge) і що кожен лишає в історії, fast-forward простими словами і як перевірити, чи зміна справді в main.