Ваш коллега работает бухгалтером в крупной компании. Он часто теряет корректные версии отчетов из-за ошибок, которые допускают другие сотрудники. Как Git теоретически может помочь в написании квартальных отчетов?

Обеспечивает возможность автоматической генерации отчетов на основе данных из репозитория
Предоставляет функциональность слияния (merge) различных версий отчетов
Позволяет контролировать доступ к отчетам и управлять правами на чтение и запись 
Позволяет создавать и хранить версии отчетов, легко отслеживать изменения и вносить исправления .
Интегрируется с системами отслеживания ошибок (tracking systems), позволяя связывать отчеты с соответствующими задачами

Вы работаете над новой функциональностью в ветке <feature_branch1>. Ваш коллега также отвел другую ветку <feature_branch2> от основной.
Находясь на ветке <feature_branch2>, он выполнил команду, чтобы применить все коммиты из ветки <feature_branch1> с сохранением линейной истории коммитов без лишних слияний.
Какую команду он выполнил

git merge --no-mc <feature_branch1>
git merge --no-ff <feature_branch1>
git pull <feature_branch1>
git merge <feature_branch1>
git rebase <feature_branch1>

Вы работаете над функциональной задачей в своей ветке, но вас попросили срочно переключиться и починить баг в другой ветке. Как можно временно сохранить наработки, не делая коммит?

Использовать команду git worktree add
Использовать команду git stash
Не стоит так делать — сохранение изменений без коммита считается устаревшей практикой
Использовать команду git hold
Использовать команду git local-cache

Что НЕ содержит коммит?

Полную копию рабочей директории
Уникальный идентификатор
Время создания коммита
Почту автора коммита
Ссылку на коммит-родитель

Нужно изменить состояние с рис. 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Однако она не сработала. В чем причина?
 изменить состояние
Не хватает команды git checkout main для перемещения HEAD на master
В команде 3 нужно было переключиться на ветку main 
В команде 4 нужно было использовать флаг --fast-forward
В команде 5 не хватает флага -f
В командах под номером 2 и 4 хеши перечисленных коммитов должны быть в обратном порядке

Вы приняли решение удалить ветку из репозитория, чтобы очистить кодовую базу и упростить процесс разработки. Какую команду используете для полного удаления ветки без следов в истории проекта?

git branch -d branch_name
git branch -r branch_name
git branch -a branch_name
git branch -m branch_name
git branch -D branch_name

Вы решили объединить ветки <task_branch> и <main_branch> при помощи команды merge. Какая стратегия слияния будет выбрана Git по умолчанию, начиная с версии 2.33?

resolve
recursive
octopus
ours
ort

Какой параметр нужно передать команде git checkout, чтобы перейти из состояния как на рис. 1 в состояние на рис. 2? При условии, что на визуализации первый родитель находится прямо над коммитом.
передать параметр
C6^~~
HEAD~~~~
С5^2
HEAD~3^2
HEAD~^2~2

Репозиторий вырос настолько, что не получается скопировать его командой git clone. Как скопировать репозиторий, сохранив идентификаторы коммитов?

Такая ситуация не произойдет, Git отслеживает размер репозитория
Использовать флаг --size-limit для команды clone, чтобы не скачивать большие бинарные файлы
Отдельно скачать большие бинарные файлы и потом все остальное
Использовать флаг --depth для команды clone, чтобы скачать только несколько последних коммитов
Использовать команду git filter-branch --tree-filter

На сайте возникла ошибка, которую необходимо поправить — вы начали исправлять ее в ветке 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 : supportOgithub.com</div>
=======
<div id="footer">
please contact us at supportOgithub.com
</div>
>>>>>>> issue:index.htmlКак исправить проблему?

С помощью команды git checkout с опцией --conflict выкачать файл заново и заменить маркеры конфликта
Конфликт можно проигнорировать и выполнить git commit без внесения изменений или разрешения конфликта
С помощью команды git reset --hard удалить все локальные незафиксированные изменения
Нужно вручную внести изменения в указанном месте и отметить решенные конфликты с помощью команды git add
Удалить один из файлов командой git clean, чтобы избежать проблем со слиянием

В вашем проекте есть небольшой набор веток, между которыми вы постоянно переключаетесь — пару релизных и master. Какой способ будет предпочтительным для организации вашей работы?

Использовать git submodule
Создать копию одного и того же проекта несколько раз при помощи git clone
Использовать команду для временного сохранения изменений без коммитов и переключаться на нужные ветки
Делать коммиты неготовых изменений, потом менять их используя флаг amend для команды git commit
Использовать инструмент git worktree

В вашем проекте есть небольшой набор веток, между которыми вы постоянно переключаетесь — пару релизных и master. Какой способ будет предпочтительным для организации вашей работы?

Использовать git submodule
Создать копию одного и того же проекта несколько раз при помощи git clone
Использовать команду для временного сохранения изменений без коммитов и переключаться на нужные ветки
Делать коммиты неготовых изменений, потом менять их используя флаг amend для команды git commit
Использовать инструмент git worktree

В какой из ситуаций есть необходимость использовать Git Subtree?

Для интеграции множества репозиториев в одну рабочую область
При постоянной работе с определенным набором веток в одном репозитории
Для временного сохранения рабочей области, чтобы переключиться на другую ветку
При работе с несколькими локальными копиями одного репозитория
При одновременной работе с несколькими ветками одного репозитория

В рамках инфраструктурного обновления на работе был изменен хост репозитория. Что нужно сделать, чтобы продолжить работу без создания новой локальной копии удаленного (remote) репозитория, если вы клонировали репозиторий до переезда хоста?

Использовать команду git remote add <new_url> для автоматического поиска нового хоста по названию репозитория
Изменить адрес origin при помощи команды git remote set-url origin <new_url>
Использовать git clone <new_url>
Использовать git fetch для автоматической настройки
Использовать git remote relink <new_url>

Чтобы следить за тем, что все ваши коммиты соответствуют командному кодстайлу (Code Style), вы решили добавить скрипт проверки. Какой git hook подойдет для этой проверки лучше всего?

pre-commit
pre-push
prepare-commit-msg
commit-msg
post-commit

К какому рабочему процессу относится следующее состояние репозитория?
состояние репозитория
Централизованный
Процесс с функциональными ветками
Gitflow Workflow
Forking Workflow
Patch Workflow