<style>.lazy{display:none}</style>Вопросы на собеседовании по Git

Вопросы на собеседовании по 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».

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

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