Это репозиторий-задача, для тренировки навыков работы с git на очных тренингах с несколькими участниками.
Это проект консольного калькулятора.
- Сделайте fork этого репозитория.
- Склонируйте себе свой форк.
- Откройте проект в IDE и немного изучите его.
- Изучите коммиты начиная с "refactoring tests"
- Перейдите в ветку
2args— это ветка разработки, в которой калькулятору добавили функциональности. - Изучите по логу коммитов, что именно произошло в этой ветке, начиная с коммита "refactoring tests".
- Влейте в эту ветку последние изменения из
master. Будут конфликты. Чтобы их грамотно разрешить, придётся разобраться с тем, какие изменения случились вmasterи как их подружить с изменеиями в ветке. Запустите тесты, чтобы проверить, что конфликты разрешены корректно. - Сделайте push
- Перейдите в ветку
handleErrors— там некоторое время назад начали добавлять корректную обработку ошибочного ввода пользователя. - Изучите историю коммитов, чтобы понять, что менялось.
- Сделайте rebase этой ветки на ветку
master. Конфликтов быть не должно. - Изучите класс с тестами.
Несмотря на то, что формально конфликтов не было, в классе с тестами сейчас бардак.
Приведите тесты, пришедшие из ветки
handleErrorsк стилю из веткиmaster. Сделайте коммит. - Сделайте push
- Перейдите в ветку master и влейте в неё изменения из ветки
2args. - Изучите лог коммитов после этого слияния. Заметьте, что слияние не создало нового коммита, а просто передвинуло указатель
master. Это случилось потому, что все изменения master-а уже были влиты в2args.
- Перейдите в ветку
handleErrors. - Влейте в неё изменения из
master. Будут конфликты с только что влитыми вmasterизменениями из2args. - Кроме формальных конфликтов могут быть и логические. Подумайте, вы интегрируете изменения из двух веток: обработки ошибок и добавления нового сценария использования. Полноценно ли эти две ветки слились?
- Сделайте push.