Тест на закрепление изученного материала в курсе "Система контроля версий Git" в третьем разделе "Командная работа в Git".
1. Чем различаются команды git checkout -b branch-name и git checkout branch-name?
Ничем, это одинаковые команды
Параметр -b указывает на необходимость создать ветку и уже потом в неё переключиться
Параметр -b указывает на необходимость проверить ветку на актуальность и уже потом в неё переключиться
2. В каком случае необходимо использовать команду git push -u origin branch-name, а в каком достаточно команды git push?
git push -u origin branch-name выполняется только в ветке master при первой синхронизации локального и удалённого репозиториев
git push -u origin branch-name выполняется при первой отправке локальной ветки в удалённый репозиторий
git push -u origin branch-name необходимо использовать, если вы хотите отправить на удалённый сервер конкретную ветку, имя которой указывается в качестве branch-name
Подсказка:
При создании ветки локально и необходимости её синхронизации с удалённым репозиторием нужно, находясь в этой ветке, выполнить командуgit push -u origin branch-name, в качествеbranch-nameуказав её имя в удалённом репозитории. Эта команда может быть использована для любых веток. Если ветка отправлена в удалённый репозиторий, то дальнейшая отправка локальных изменений может осуществляться с помощью командыgit pushбез параметров.
3. Вы последовательно выполняете следующие действия в репозитории:
Комментарий:
Изменяете файл 1
Выполняете git stash
Изменяете файл 2
Выполняете git stash
Выполняете git stash pop
Изменения в каком файле будут возвращены из stash в рабочую директорию?
В файле 1
В файле 2
В обоих файлах
Никакие изменения не будут возвращены
Подсказка:
При многократном добавлении изменений вstashкомандойgit stashих извлечение командойgit stash popпроисходит в обратном порядке.
4. Что произойдёт, если программист выполнит следующие команды?
Комментарий:
git checkout branch-1
git merge master
Ветка branch-1 будет влита в ветку master
Ветка master будет влита в ветку branch-1
Ветки синхронизируются друг с другом
5. При выполнении каких команд могут возникать локальные конфликты слияния?
git merge
git push
git pull
git stash pop
Подсказка:
Локальные конфликты слияния могут возникать при выполнении любых команд, если в результате в рабочей директории появятся файлы, изменения которых несовместимы с их текущими версиями. При выполнении командыgit pushизменений в рабочей директории не происходит, поэтому в результате её выполнения локальные конфликты возникнуть не могут.
6. Чем функционально отличается pull request от merge request?
Pull request не предполагает слияния веток в результате принятия
Merge request — это запрос на слияние по стратегии merge, а pull request — по стратегии rebase или squash
Ничем
Подсказка:
Pull request — термин, используемый в GitHub, а merge request — в GitLab. Оба термина обозначают одно и то же — запрос на принятие внесённых изменений и на их слияние с базовой веткой. Причём такое слияние, независимо от названия, может быть осуществлено с использованием разных стратегий.
7. В чём преимущества модели ветвления trunk-based перед Git Flow?
Она предполагает более быструю разработку
В ней все ветки, кроме master, «живут» недолго
Она проще для понимания и использования
В ней можно включать и отключать различные фичи, используя feature flags
Подсказка:
Все перечисленные преимущества делают модель ветвленияtrunk-basedболее практичной и широко используемой.
Как можно отблагодарить:
- Оформить удобную для вас подписку на Boosty.to
- Разово поддержать через DonationAlerts
