Вопросы на собеседовании по Git

В этой статье мы собрали наиболее часто встречающиеся вопросы на собеседовании по Git для специалистов в области QA.

БОЛЬШЕ ВОПРОСОВ С СОБЕСЕДОВАНИЙ В НАШЕМ ТЕЛЕГРАМ КАНАЛЕ QASOBES

Что такое Git и GitHub?

Git — это система контроля версий, которая помогает управлять изменениями в исходном коде, а GitHub — это платформа, построенная на основе Git, которая предоставляет дополнительные возможности и инструменты для упрощения совместной работы и управления проектами. Существуют и другие сервисы хостинга Git, такие как BitBucket, AWS CodeCommit и Azure Repos.

Что такое локальный и удаленный репозитории в Git?

  • Git-репозиторий — это проект, файлы которого отслеживаются системой контроля версий Git.
  • Локальный репозиторий — это копия репозитория Git, находящаяся на вашей локальной машине. Когда вы клонируете репозиторий или создаете новый, вы работаете с локальным репозиторием. В локальных репозиториях скрыт каталог .git, который содержит всю информацию, связанную с Git, такую как история, ветви и конфигурации.
  • Удаленный репозиторий — это хранилище, размещенное на сервере. Он служит центральной точкой, где несколько разработчиков могут совместно работать над проектом. К распространенным сервисам удаленного хостинга относятся GitHub, GitLab и Bitbucket. Разработчики могут вносить свои изменения в удаленный репозиторий или получать (pull) изменения, сделанные другими.

Опишите шаги по выгрузке новых изменений

  1. Я создаю новую ветку для своих изменений в локальном репозитории.
  2. Я вношу свои изменения в эту ветку.
  3. Я делаю git add, чтобы добавить изменения в стэйджинг (staging area).
  4. Я создаю коммит с помощью git commit.
  5. Я открываю пулл реквест (pull request) на слияние с основной веткой.
  6. После того, как код будет рассмотрен и одобрен, я объединю свою ветку с основной.

Что делает команда git status?

Она используется для отображения текущего состояния вашего рабочего каталога и стэйджинга. Эта команда предоставляет информацию о ветке, изменениях, которые будут зафиксированы, изменениях, которые не были индексированы, и неотслеживаемых файлах.

Что делает команда git add?

Она используется для добавления измененных файлов в стэйджинг (staging area).

Что делает команда git commit?

Она используется для создания коммитов в Git. Коммит — это действие в системе контроля версий, которое фиксирует (сохраняет) изменения в коде.

Что делают команды git push и git pull?

git push используется для внесения ваших изменений в удаленный репозиторий. В него вносятся только изменения на уровне коммитов.

git pull  используется для получения последних изменений из удаленного репозитория.

В чем разница между git pull и git fetch?

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

git pull  используется для получения последних изменений из удаленного репозитория и их немедленного слияния. Это комбинация двух команд: git fetch > git merge.

Как проверить, какие файлы вы изменили?

С помощью команды git status.

Как посмотреть, что именно вы изменили в определенном файле?

С помощью команды git diff.

Почему мы делаем git pull, а затем git push?

Чтобы убедиться, что у нас есть последняя версия нашего проекта. Git не разрешает выполнение команды git push, если ваш локальный репозиторий не обновлён.

Как вы разрешаете конфликты в Git?

  • Конфликты в Git возникают, когда изменения от разных инженеров находятся в одном файле и Git не может автоматически разрешить их. Если Git не может разрешить конфликт автоматически, он запишет оба изменения в файл, вызвавший конфликт, и попросит вас исправить его вручную.
  • Чтобы разрешить конфликты необходимо:
    • Найти и открыть файлы с конфликтами. Git помечает их <<<<<<, ===== и >>>>>
    • Отредактировать конфликтующие секции в файле вручную, сохраняя нужные изменения и удаляя метки Git
    • Пометить эти файлы как разрешенные с помощью команды git add
    • Затем сделать коммит изменений для завершения слияния.

Что такое ветка в репозитории Git?

Ветка представляет собой независимую линию разработки в репозитории Git. Создавая ветку, вы, по сути, создаете новую временную шкалу, в которую можно вносить изменения, не затрагивая основную или другие ветки. Ветки в Git полезны для организации и изоляции усилий по разработке.

Какие различные стратегии ветвления вы знаете?

Централизованный рабочий процесс (Centralized Workflow). Веткой разработки по умолчанию является main, и все изменения фиксируются в этой ветке. Этот рабочий процесс не требует других веток, кроме главной.

Рабочий процесс разветвления функций (Feature Branching Workflow). Основная идея рабочего процесса разветвления функций заключается в том, что разработка всех функций должна вестись в специальной ветке, а не в основной.

Рабочий процесс Gitflow. Gitflow определяет строгую модель ветвления, разработанную вокруг релиза проекта. Это обеспечивает надежную основу для управления большими проектами. Она назначает очень специфические роли различным веткам и определяет, как и когда они должны взаимодействовать. В дополнение к функциональным веткам используются отдельные ветки для подготовки, поддержки и записи релизов.

Рабочий процесс Forking. Forking Workflow принципиально отличается от других популярных рабочих процессов Git. Вместо того чтобы использовать единый серверный репозиторий в качестве «центральной» кодовой базы, он предоставляет каждому разработчику свой серверный репозиторий. Это означает, что каждый участник имеет не один, а два Git-репозитория: частный локальный и публичный серверный. Чаще всего Forking Workflow встречается в публичных проектах с открытым исходным кодом.

Прочтите https://www.atlassian.com/git/tutorials статьи для получения более подробной информации.

Что делает файл .gitignore?

Используется в Git-репозитории для указания намеренно не отслеживаемых файлов и каталогов, которые Git должен игнорировать. Обычно это файлы, которые не нуждаются в контроле версий, например, временные файлы, артефакты сборки или файлы конфигурации, специфичные для пользователя.

Перевод статьи «Top Git Interview Questions for SDET».

🔥 Какой была ваша первая зарплата в QA и как вы искали первую работу? 

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Читать в телеграм

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *