30 главных вопросов и ответов на собеседованиях по Git, которые вам нужно знать в 2022 году
Опубликовано: 2021-01-04Git набирает популярность. Разработчики постоянно работают над выпуском новых версий небета-приложения, чтобы исправить ошибки или улучшить его функциональность. Git действует как система контроля версий, где все изменения хранятся в одном центральном репозитории.
Каждый разработчик в команде может просматривать версии, вносить изменения, а затем загружать их. Он также невероятно хорошо работает для людей, работающих в удаленных командах или работающих дома. Git используется не только разработчиками. Даже не являющиеся разработчиками члены команды могут использовать его для получения последней версии или конкретной версии приложения и использовать ее для тестирования или других работ.
Там, где Git — это инструмент командной строки, Git Hub — это центр, где программисты сохраняют свои проекты и общаются с командой.
Таким образом, знание Git востребовано, и с ростом спроса мы сформировали набор вопросов для собеседования по Git, которые помогут вам получить работу. Чтобы упростить понимание, мы разделим вопросы интервью GitHub на три раздела: для начинающих, среднего и продвинутого уровня.
Оглавление
Вопросы на собеседовании по Git базового уровня
Q.1) Объясните разницу между SVN и Git
- SVN — это инструмент централизованного контроля версий, принадлежащий второму поколению, в отличие от Git, который является децентрализованным инструментом контроля версий, принадлежащим третьему поколению.
- В SVN репозиторий на стороне сервера сохраняет историю версий. В Git вы можете скопировать весь репозиторий на свой ПК.
- В SVN вы можете зафиксировать, только когда вы в сети, в отличие от Git, где вы можете зафиксировать даже в автономном режиме.
- Операции извлечения и отправки выполняются медленнее в SVN по сравнению с Git, где они выполняются быстрее.
- В SVN ваша работа не публикуется до тех пор, пока вы этого не сделаете, в отличие от Git, который делится автоматически.
Q.2) Что такое Git?

Git позволяет разработчикам и членам команды отслеживать изменения, внесенные кем-либо. Это также позволяет вам вернуться к более старым версиям. Это распределенная система контроля версий, которая помогает команде узнать, кто внес изменения, в какую дату и время. Она имеет ряд преимуществ перед другими системами контроля версий.
Самым большим преимуществом Git является то, что он не зависит от центрального сервера для сохранения всех версий проекта. Разработчики могут создавать клоны (копии) репозитория на своих системах, в которых отображается вся история. Это особенно помогает, когда есть серьезное отключение. В Git есть центральный облачный репозиторий, где программисты или члены команды могут фиксировать изменения и делиться ими со своей командой.
Q.3) В чем разница между GitHub и Git?
Служба размещения репозитория Git называется GitHub. Кроме того, у него есть свои особенности, такие как графический веб-интерфейс. Кроме того, GitHub также предоставляет доступ, помимо того, что служит инструментом управления проектом.
С другой стороны, Git — это распределенная система контроля версий. В основном он используется для отслеживания любых изменений, внесенных в небета-версию приложения. Он предлагает скорость, поддержку и целостность данных. Разработчики и другие члены команды могут видеть, кто и когда внес какие изменения.
Q.4) Каковы преимущества использования системы контроля версий?
Это помогает команде и ее членам, потому что они могут работать в любое время, поскольку система контроля версий дает им возможность без проблем объединять сделанные ими изменения в общую версию.
В истории отображаются все старые версии и их варианты, что позволяет членам команды при необходимости вернуться к прежним версиям. Члены команды также имеют снимок всего проекта.
Члены команды должны комментировать, когда они вносят какие-либо изменения, что помогает другим понять, какие именно изменения делают проект более организованным. Объяснений ждать не приходится. Члены команды точно знают, кто изменил версию и почему.
В случае досадного сбоя сервера распределенная система контроля версий, такая как Git, позволяет вам получить полную историю вашего проекта, которую можно загрузить на свой рабочий стол.
Q.5) Какой язык используется в Git?
Git использует язык «C», потому что требуемая GIT скорость может быть удовлетворена языком «C», поскольку он сокращает время выполнения, в отличие от других языков высокого уровня.
Q.6) Расскажите нам о некоторых функциях хостинга репозитория Git.
- Гитхаб
- Гитлаб
- SourceForge
- Битбакет
- GitEnterprise
Q.7) Как вы фиксируете Git?
Чтобы написать сообщение фиксации, вам нужно написать команду «git commit -a».
Параметр -a в командной строке указывает git зафиксировать последнее содержимое всех отслеживаемых файлов, которые были изменены. Вы можете использовать команду «git add <file>» перед git commit -a, если новые файлы необходимо зафиксировать в первый раз.
Q.8) Как вы можете исправить неработающий коммит?
Вы можете использовать команду «git commit –amend», чтобы исправить неработающий коммит. Выполняя эту команду, она исправляет неработающее сообщение фиксации в редакторе.
Читайте: Лучшие вопросы интервью Nagios
Q.9) Что означает репозиторий в Git?
Это место, где Git сохраняет все файлы. Git может хранить файлы как в удаленном, так и в локальном репозитории.
Q.10) Как создать репозиторий?
Создать репозиторий в Git просто. Вам нужно создать каталог для проекта, если это еще не сделано. Затем вам нужно запустить команду «git init». Эта команда создает каталог git в каталоге проекта.
Q.11) Объясните, что такое «голый репозиторий» в Git?
Чистый репозиторий Git обычно используется в качестве удаленного репозитория, то есть вы делитесь им с членами вашей команды или другими людьми. Внутри него нет рабочего дерева, потому что внутри удаленного репозитория нет работы. В других файлах внутри этого нет файлов, которые вы будете редактировать. Напротив, рабочий каталог содержит подкаталог .git со всей историей версий, а также рабочее дерево.
Q.12) Что вы подразумеваете под «конфликтом» в git?
Как правило, Git управляет всеми слияниями, используя свои функции автоматического слияния. Но может возникнуть конфликт, если две отдельные ветки получат изменения в одной и той же строке файла. Также может случиться, когда файл удален из одной ветки, но редактировался в другой. Это обязательно произойдет, когда вы работаете в командной среде.
Q.13) Что такое git is-tree?
«git is-tree» представляет собой объект дерева, содержащий режим и имя элемента, а также значение SHA-1 дерева или большого двоичного объекта.
Вопросы для собеседования с Git на среднем уровне
В. 14) Как вы решаете конфликт, если он возникает в Git?
Вы можете разрешить конфликт в Git следующими способами:
- Определите, какие файлы вызвали возникновение конфликта.
- Решите конфликт, внеся изменения в этот конкретный файл.
- Добавьте эти файлы еще раз с помощью команды git add.
- Используйте команду git commit, чтобы зафиксировать файл.
Вопрос 15. Если коммит уже отправлен и опубликован, как вернуть его обратно в Git?
Это можно сделать двумя способами, в зависимости от ситуации:
- Вы можете полностью удалить его или исправить плохой файл в новом коммите, а затем отправить его обратно в удаленный репозиторий. Это наиболее часто используемый метод для решения этой проблемы. После внесения соответствующих изменений в файл с помощью команды git commit -m «commit message» вы фиксируете его в удаленном репозитории.
- В качестве альтернативы вы можете создать новый коммит, который отменяет все изменения, сделанные в плохом коммите. Вы можете сделать это с помощью команды git revert <name of bad commit>
Читайте: Agile-интервью Вопросы и ответы

Q.16) Что такое SubGit?
Это инструмент, позволяющий перейти с SVN на Fit. Он создает доступное для записи зеркало Git локального или удаленного репозитория Subversion и использует как Subversion, так и Git столько, сколько вам нужно. Вы можете использовать SubGit для создания двунаправленного зеркала Git-SVN существующего репозитория Subversion. Вы также можете быстро выполнить однократный импорт из Subversion в Git.
Q.17) В чем разница между командой git pull и командой git fetch?
Команда Git pull извлекает все новые изменения или коммиты из конкретной ветки из вашего центрального репозитория и обновляет целевую ветку в локальном репозитории.
Команда Git fetch используется для чего-то похожего, но имеет небольшое отличие. Когда вы выбираете, он извлекает все новые коммиты из определенной ветки и сохраняет их в новой ветке в вашем локальном репозитории. Если вы хотите отразить эти изменения в вашей целевой ветке, вы должны вызвать git merge.
Таким образом, Git pull = git fetch + git merge.
Q.18) Что такое «индекс» или «индекс» в Git?
Промежуточная область, в которой изменения могут быть отформатированы или просмотрены перед фиксацией, называется индексом или промежуточной областью в Git.
Q.19) Что такое git stash? Как вы это применяете?
Бывают случаи, когда часть работы приходится приостанавливать, так как вы должны работать над какой-то другой веткой в качестве приоритета. Наполовину сделанная работа не может быть завершена, поскольку она еще не завершена, но вы хотите вернуться и поработать над ней в ближайшее время. Чтобы решить эту проблему, git slash предлагает помощь.
Он сохраняет его в стеке незавершенных изменений, которые вы можете завершить и зафиксировать позже. Чтобы вернуться к этой части работы, все, что вам нужно сделать, это вызвать команду git stash для применения. Он извлекает вашу работу из того места, где вы ее оставили, в ваш рабочий каталог.
Q. 20) Чем git diff отличается от 'git status'?
«git diff» почти аналогичен «git status»; единственная разница между ними состоит в том, что первый раскрывает различия между различными коммитами. '
Q.21) Чем «git remote» отличается от «git clone»?
Если вы хотите создать запись в своей конфигурации git, в которой упоминается имя для определенного URL-адреса, вы используете «git remote add». С другой стороны, «git clone» создает новый репозиторий git, копируя существующий, расположенный по URL-адресу.
Читайте: Лучшие вопросы и ответы на интервью React
Q.22) Опишите стратегии ветвления
У каждой компании есть свои стратегии развития. Вот некоторые из популярных:
- Ветвление функций. Модель ветвей функций сохраняет все изменения, сделанные для определенной функции, внутри ветви. Только после тщательного тестирования эта ветка объединяется со своим мастером.
- Ветвление релиза — как только ветка разработки достигает точки, когда она вроде как готова к выпуску; вы можете клонировать или скопировать его, чтобы сформировать ветку выпуска. После клонирования к нему не добавляется никаких новых функций. Вы можете только исправлять ошибки, документировать их или выполнять такие действия, которые связаны с их улучшением для выпуска. После тестирования он объединяется со своим мастером и получает номер версии. Кроме того, его следует объединить обратно в ветку разработки, которая, возможно, продвинулась вперед с момента выпуска релиза.
- Ветвление задач. В этой модели каждая задача выполняется в отдельной ветке с ключом задачи, содержащимся в имени ветки. Ясно видеть, какой код выполняет какую задачу, ища ключ задачи в имени ветки.
Q.23) Объясните рабочий процесс Gitflow?
Gitflow хранит историю конкретного проекта, используя две долговременные параллельные ветки: master и development:
- Мастер — это готовая ветка. На этой ветке все проверено и одобрено.
- Исправление — эти ветки используются для быстрого исправления производственных выпусков. Они почти как ваши ветки функций и ветки релизов; кроме того, они основаны на мастере, а не на разработке.
- Разработка — все ветки функций объединены в эту ветку. Это те, которые проходят испытания. Только после тщательного тестирования он сливается с основной веткой.
- Функция — каждая новая функция должна находиться в своей собственной ветке, которая затем передается в их родительскую ветку, которая является веткой разработки.
В. 24) Как понять, объединена ли ветвь с мастером?
Следующие команды помогут вам узнать, объединены они или нет:
git branch –merged — перечисляет все ветки, которые были объединены в текущую ветку. Тогда вы сможете увидеть, так это или нет.
git branch --no-merged – В качестве альтернативы вы можете использовать эту команду, чтобы проверить все ветки, которые не объединены с основной веткой.
Q.25) Как вы можете удалить файл из git, не удаляя его из вашей файловой системы?
Вы должны быть осторожны при добавлении файлов в Git, чтобы не добавить неправильные файлы. Команда git rm удалит его как из промежуточной области, так и из файловой системы, поэтому вместо этого вам нужно использовать команду git reset.
Вы можете использовать git reset имя файла или эхо-имя файла >> .gitingore
Q.26) Объясните перебазирование и слияние в Git?
Вы используете команду rebase для интеграции правок из одной ветки в другую. Используется как альтернатива команде слияния. Это альтернатива команде «объединить». Он отличается от слияния тем, что переписывает историю коммитов, чтобы получить прямую, организованную последовательность коммитов.
Вопросы для собеседования по Git для продвинутого уровня:
Вопрос 27. Как объединить последние N коммитов в один коммит?
Есть два способа объединить последние N коммитов в один коммит:
Если вы хотите создать новое сообщение фиксации с самого начала, вы можете использовать следующую команду:
git reset –soft HEAD~N &&git commit
Если вы хотите просто отредактировать новое сообщение фиксации с объединением существующих сообщений фиксации, вам необходимо получить эти сообщения и передать их в фиксацию Git, используя команду:
git reset –soft HEAD~N &&git commit –edit -m”$(git log –format=%B –reverse .HEAD@{N} )”
Вопрос 28) Каковы шаги по интеграции Jenkins с Git?
Шаг 1: вам нужно нажать на панель инструментов Jenkins, чтобы управлять кнопкой Jenkins.
Шаг 2: Нажмите на кнопку управления плагинами.
Шаг 3: На странице плагинов вам нужно выбрать плагин GIT. Нажимаем установить без перезагрузки. Плагин скачивается автоматически, в зависимости от скорости вашего интернета.
Q.29) Объясните, что такое Git bisect и как вы используете его, чтобы добраться до источника ошибки?
Используя Git bisect, вы можете выяснить, какая фиксация вызвала ошибку, используя двоичный поиск. Команда для Git bisect: git bisect <подкоманда> <параметры>
алгоритм бинарного поиска, эта команда находит, какой коммит вызвал ошибку в первую очередь. Git bisect выбирает фиксацию между двумя конечными точками, где была обнаружена ошибка. Вам нужно, чтобы Вы могли определить между хорошим коммитом и плохим. Он продолжает фильтровать его, пока не будет найден точный коммит.

Q.30) Объясните git reflog?
Команда 'reflog' помогает отслеживать каждое отдельное редактирование, которое было сделано для ссылок репозитория. Он хранит историю данных ветвей и даже сохраняет тег для тех, которые были созданы локально или снаружи .
Эту команду необходимо выполнить в репозитории, в котором была отсутствующая ветка. В случае ситуации с удаленным репозиторием вам необходимо запустить команду reflog в системе программиста, у которого была ветка.
Получите диплом инженера -программиста в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.
Заключение
Мы надеемся, что вопросы для интервью Git Hub помогут вам получить работу своей мечты. Это наиболее часто задаваемые интервьюером вопросы о Git. Мы желаем вам всего наилучшего на собеседовании!

