🏆 Правильных ответов: 15 из 15.
Q1. Ваш коллега работает бухгалтером в крупной компании. Он часто теряет корректные версии отчетов из-за ошибок, которые допускают другие сотрудники. Как Git теоретически может помочь в написании квартальных отчетов?
- Позволяет создавать и хранить версии отчетов, легко отслеживать изменения и вносить исправления
Q2. Вы работаете над новой функциональностью в ветке <feature_branch1>
. Ваш коллега также отвел другую ветку <feature_branch2>
от основной. Находясь на ветке <feature_branch2>
, он выполнил команду, чтобы применить все коммиты из ветки <feature_branch1>
с сохранением линейной истории коммитов без лишних слияний. Какую команду он выполнил?
-
git rebase <feature_branch1>
Q3. Вы работаете над функциональной задачей в своей ветке, но вас попросили срочно переключиться и починить баг в другой ветке. Как можно временно сохранить наработки, не делая коммит?
- Использовать команду git stash
- Полную копию рабочей директории
Q5. Нужно изменить состояние с рис. 1 на состояние с рис. 2 (см. ниже). Знак «*» указывает на HEAD. Ваш коллега предложил такую последовательность команд
1. git checkout one
2. git cherry-pick C4 C3 C2
3. git checkout two
4. git cherry-pick C5 C4 C3 C2
5. git branch three C2
Однако она не сработала. В чем причина?
- В командах под номером 2 и 4 хеши перечисленных коммитов должны быть в обратном порядке
Q6. Вы приняли решение удалить ветку из репозитория, чтобы очистить кодовую базу и упростить процесс разработки. Какую команду используете для полного удаления ветки без следов в истории проекта?
- git branch -D branch_name
Q7. Вы решили объединить ветки <task_branch>
и <main_branch>
при помощи команды merge. Какая стратегия слияния будет выбрана Git по умолчанию, начиная с версии 2.33?
- ort
Q8. Какой параметр нужно передать команде git checkout, чтобы перейти из состояния как на рис. 1 в состояние на рис. 2? При условии, что на визуализации первый родитель находится прямо над коммитом.
- C5^2
Q9. Репозиторий вырос настолько, что не получается скопировать его командой git clone. Как скопировать репозиторий, сохранив идентификаторы коммитов?
- Использовать флаг –depth для команды clone, чтобы скачать только несколько последних коммитов
Q10. На сайте возникла ошибка, которую необходимо поправить — вы начали исправлять ее в ветке issue. В процессе вы переключились в ветку master и внесли изменения там. Закончив работу в issue, вы выполнили слияние двух веток. После введения команды система выдала следующее сообщение:
$ git merge issue
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.
В одном из файлов появился такой раздел:
<<<<<<<HEAD:index.html
<div id="footer">contact : support@github.com</div>
=======
<div id="footer">
please contact us at support@github.com
</div>
>>>>>>> issue:index.html
Как исправить проблему?
- Нужно вручную внести изменения в указанном месте и отметить решенные конфликты с помощью команды git add
Q11. В вашем проекте есть небольшой набор веток, между которыми вы постоянно переключаетесь — пару релизных и master. Какой способ будет предпочтительным для организации вашей работы?
- Использовать инструмент git worktree
- Для интеграции множества репозиториев в одну рабочую область
Q13. В рамках инфраструктурного обновления на работе был изменен хост репозитория. Что нужно сделать, чтобы продолжить работу без создания новой локальной копии удаленного (remote) репозитория, если вы клонировали репозиторий до переезда хоста?
- Изменить адрес origin при помощи команды
git remote set-url origin <new_url>
Q14. Чтобы следить за тем, что все ваши коммиты соответствуют командному кодстайлу (Code Style), вы решили добавить скрипт проверки. Какой git hook подойдет для этой проверки лучше всего?
- pre-commit
- Gitflow Workflow