Giter VIP home page Giter VIP logo

git-merge-task's Introduction

Тренировка работы с git

Что это?

Это репозиторий-задача, для тренировки навыков работы с git на очных тренингах с несколькими участниками.

Это проект консольного калькулятора.

Задание 0. Знакомство с проектом

  1. Сделайте fork этого репозитория.
  2. Склонируйте себе свой форк.
  3. Откройте проект в IDE и немного изучите его.
  4. Изучите коммиты начиная с "refactoring tests"

Задание 1. Merge master → 2args с конфликтами

  1. Перейдите в ветку 2args — это ветка разработки, в которой калькулятору добавили функциональности.
  2. Изучите по логу коммитов, что именно произошло в этой ветке, начиная с коммита "refactoring tests".
  3. Влейте в эту ветку последние изменения из master. Будут конфликты. Чтобы их грамотно разрешить, придётся разобраться с тем, какие изменения случились в master и как их подружить с изменеиями в ветке. Запустите тесты, чтобы проверить, что конфликты разрешены корректно.
  4. Сделайте push

Задание 2. Rebase handleErrors на master без формальных конфликтов

  1. Перейдите в ветку handleErrors — там некоторое время назад начали добавлять корректную обработку ошибочного ввода пользователя.
  2. Изучите историю коммитов, чтобы понять, что менялось.
  3. Сделайте rebase этой ветки на ветку master. Конфликтов быть не должно.
  4. Изучите класс с тестами. Несмотря на то, что формально конфликтов не было, в классе с тестами сейчас бардак. Приведите тесты, пришедшие из ветки handleErrors к стилю из ветки master. Сделайте коммит.
  5. Сделайте push

Задание 3. Fast forward merge 2args → master

  1. Перейдите в ветку master и влейте в неё изменения из ветки 2args.
  2. Изучите лог коммитов после этого слияния. Заметьте, что слияние не создало нового коммита, а просто передвинуло указатель master. Это случилось потому, что все изменения master-а уже были влиты в 2args.

Задание 4. Merge handleErrors → master ветки с конфликтами

  1. Перейдите в ветку handleErrors.
  2. Влейте в неё изменения из master. Будут конфликты с только что влитыми в master изменениями из 2args.
  3. Кроме формальных конфликтов могут быть и логические. Подумайте, вы интегрируете изменения из двух веток: обработки ошибок и добавления нового сценария использования. Полноценно ли эти две ветки слились?
  4. Сделайте push.

git-merge-task's People

Contributors

xoposhiy avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.