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