Тренажёр «Git и работа в команде»: задания с проверкой
Как устроен Git и как им пользуются в команде: репозиторий и коммиты, хорошее сообщение, история и откат, ветки, слияние и конфликты, удалённый репозиторий, пулл-реквест и ревью, командные правила и спасение, когда что-то пошло не так. Без привязки к одному сервису и редактору.
Как тренироваться
Полный тренажёр повторяет темы после сданной домашней работы: выбирает задания по результатам, показывает ошибки и помогает закрепить материал. Для сохранения результатов нужен аккаунт.
Попробуйте задания без регистрации
Какая команда покажет, что войдёт в коммит?
Что можно повторить
- Зачем контроль версий
Понимать, что даёт система контроля версий, как Git хранит историю снимками-коммитами, чем Git отличается от сервисов для репозиториев и на каких трёх правилах держится курс.
- Репозиторий, коммит, статус
Создавать и копировать репозиторий, понимать три места изменения — рабочую папку, индекс и историю, — читать git status, смотреть изменения git diff и собирать коммит только из нужного.
- Хороший коммит
Делать коммиты по одному законченному изменению, писать сообщение из первой строки «что» и пояснения «зачем», вести .gitignore и не пускать в историю секреты и большие файлы.
- История и откат
Читать историю — log, show, diff между коммитами, blame — и выбирать откат по тому, где лежит правка: restore для несохранённого, revert для отправленного, reset и --amend только для своего неотправленного.
- Ветки
Понимать ветку как ярлык на коммите, создавать ветки от свежей main и переключаться с чистой рабочей папкой, держать main рабочей, называть ветки понятно и не давать им жить долго.
- Слияние и конфликты
Сливать ветки, различать перемотку вперёд и коммит слияния, читать метки конфликта и разбирать его, отменять слияние, обновлять ветку merge или rebase и понимать, что слияние без конфликтов ещё не гарантирует работу.
- Удалённый репозиторий
Понимать удалённый репозиторий origin и разницу между main и origin/main, забирать изменения fetch и pull, отправлять push и разбираться с отказом, не пользоваться --force в общей ветке и держать рабочий ритм обмена.
- Пулл-реквест и ревью
Открывать пулл-реквест с одной задачей, небольшим размером и описанием «что, зачем, как проверить, чего нет»; проходить ревью как автор и проводить как ревьюер; читать автоматические проверки и вливать одобренное выбранным способом.
- Командные правила
Понимать защиту main, выбирать простое устройство веток и отмечать выпуски тегами, держать договорённости команды в репозитории, автоматизировать проверяемое и менять неудобные правила, а не обходить их.
- Беды и спасение
Не паниковать и находить «пропавшие» коммиты через reflog; исправлять коммиты не в той ветке и detached HEAD; откладывать правки stash и склеивать свои неотправленные коммиты; действовать при утечке секрета, неудачном слиянии и удалённом файле.