Skip to content

Avervild/git-task

Repository files navigation

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

Что это?

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

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

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

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

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

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

Задание 2. Rebase handleErrors на master

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

Задание 3. Fetch from Remotes

  1. Добавьте ссылку на исходный репозиторий.
    git remote add base https://github.com/CampusSpb/git-task
  2. Сделайте fetch из этого репозитория git fetch base
  3. Посмотрите на ветки из репозитория base, сравните с текущими

Задание 4. Force Push

  1. Перейдите в ветку handleErrors
  2. Сделайте force push на этой ветке
    git push --force-with-lease

Задание 5. Reset

  1. Перейдите в ветку handleErrors
  2. Сделайте hard reset на base/handleErrors
    git reset --hard base/handleErrors
  3. Сделайте mixed reset на origin/handleErrors. Посмотрите на состояние директории и на diff с последним коммитом
    git reset --mixed origin/handleErrors

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages