Рубрики
Uncategorized

Git Questions для разработчиков

GIT — очень популярный инструмент управления версиями в сообществе программного обеспечения. Почти каждый орган из списка Fortune 500+ … с меткой GIT, DevOps, Career.

GIT — очень популярный инструмент управления версиями в сообществе программного обеспечения. Почти все организации Fortune 500+ используют GIT. Это содержит базовые вопросы для интервью для экспертов, которые интервьюер определенно задает. Эти вопросники помогут подготовиться к собеседованию за короткое время.

Часто эти вопросы и концепции используются в повседневном программировании. Но они наиболее полезны, когда интервьюер пытается проверить ваши глубокие знания о контроле версий GIT.

Основы: каждый разработчик должен знать

Оригинальный автор (разработчик) Linus Torvalds выпущен 7 апреля 2005 г. Стабильный релиз 2.23.0/16 августа 2019 г., используемые в C -Shell, Perl, TCL, Python Opering System Windows, Linux, MacOS Type Control GIT — это система управления распределенной версией (DVC), а также это система управления исходным кодом (SCM), которая используется в качестве трека, которая изменяет файл, также позволяет вернуться к какому -либо конкретному изменению.

Git использует «C» Язык программирования что гарантирует, что накладные расходы, связанные с языками высокого уровня, которые уменьшались и делают его быстро. Кроме того, это программное обеспечение с открытым исходным кодом, распространяемое в соответствии с условиями GNU (общая публичная лицензия).

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

Система управления версиями включает в себя систему тегов, которая помогает различать альфа, бета -версию или различные версии релиза для различных документов. Актуальная история доступна для документа и типов файлов. Это не требует никакой другой системы репозитория, и она может быть клонирована в соответствии с потребностями и доступностью. Есть 3 типа системы управления версиями:

Система управления локальной версией

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

Централизованные системы управления версиями

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

Система управления распределенной версией

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

Преимущества использования git

Бесплатный и с открытым исходным кодом быстрый и маленький безопасность Неявное резервное копирование проще разветвлять не нужно мощное оборудование

Есть три основных популярных услуг репозитория GIT

Gitlab Github Bitbucket

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

Рабочий каталог рабочих каталогов GIT Directory

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

Рабочий каталог

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

Давайте предположим, что этот каталог теперь отслеживается GIT. То есть мы создали репозиторий GIT в этом существующем каталоге проектов, скрытый .git Папка инициализирована в ней. В этом состоянии GIT просто знает о файлах в проекте. Он еще не будет отслеживать файлы. Чтобы отслеживать файлы, вы должны зафиксировать эти файлы, сначала добавив файлы в зону постановки. Это приводит вас к следующему штату в GIT Life-цикле.

Плацдарм

Пока вы находитесь в рабочем каталоге, вы выбираете файлы, которые должны отслеживать GIT. зачем вам это? Почему бы вам не отслеживать все в проекте? Это связано с тем, что некоторые файлы в проекте, такие как файлы класса, файлы журнала, файлы результатов и временные файлы данных, динамически генерируются. Не имеет смысла отслеживать версии этих файлов. Принимая во внимание, что файлы исходного кода, файлы данных, файлы конфигурации и другие артефакты проекта содержат бизнес -логику приложения. Таким образом, эти файлы должны отслеживать GIT, необходимо добавить в зону постановки.

Другими словами, зона постановки — это игровая площадка, где вы группируете, добавляете и организуете файлы, которые будут предназначены для GIT для отслеживания их версий.

Важно быстро отметить термин, называемый индексацией здесь. Индексация — это процесс добавления файлов в зону постановки. Другими словами, индекс составляет файлы, добавленные в зону постановки. Этот термин снова будет объяснен в следующем учебном пособии по терминологии GIT.

GIT Directory

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

Теперь снимок файлов в коммите записан GIT. Информация, связанная с этим коммит (имена файлов, совершенных, дата и времени коммита, автор книги «Комплект сообщения»), хранится в каталоге GIT. Таким образом, каталог GIT — это база данных, где будут отслеживать метаданные об истории проектов.

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

GIT может общаться, используя четыре протокола-

Безопасная оболочка и git.

Местный

Локальный протокол использует, когда удаленный репозиторий находится на одном диском, но в другом каталоге и обычно используется в тех случаях, когда пользователи делятся общей файловой системой. Репозитории на основе файлов легко настроить, но не самые простые для настройки, когда вы хотите, чтобы пользователи могли работать удаленно.

Безопасная оболочка

Secure Shell (SSH) — это аутентифицированный протокол, который поставляется с преимуществом легко настройки, эффективным чтением и написанием. Его легко настроить, и соединение безопасно, так как передача данных зашифрована.

Http

Протокол переноса гипертекста (HTTP)/протокол передачи гипертекста, защищенный (HTTP), вероятно, является самым простым протоколом для настройки. Это также не является ресурсным для сервера. После того, как репозиторий находится под веб -сервером, все пользователи, которые могут получить доступ к серверу, имеют доступ к репозитории. Тем не менее, будет значительное количество сетевых накладных расходов, и клонирование может занять больше времени.

Git

Протокол GIT доступен с GIT и является одним из самых быстрых протоколов. Тем не менее, ему не хватает надежных функций аутентификации и, как правило, подходит для предложения доступ только для чтения к публичным проектам. Нередко сочетать его с SSH для конкретных пользователей, которым необходимо написать доступ. Он слушает выделенный порт 9418, который предоставляет услуги, аналогичные протоколу SSH

Отвечать. «Git Commit -a» используется для написания сообщения о коммите в GIT. -A предназначен для обучения GIT совершить новый контент всех отслеживаемых файлов, которые были изменены.

Если какой -либо новый файл должен быть совершен в первый раз, «git add» используется перед фиксом GIT.

Отвечать. Конфликт в GIT возникает, когда коммит, который должен быть объединен в одном файле, а также текущий коммит изменился в том же месте в этом файле. И в этом случае не может предсказать, какие изменения должны иметь приоритет.

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

После этого GIT Commits Commits Commits, которую необходимо запустить, чтобы совершить ремонтное слияние.

Различия между GIT и SVN:

GIT SVN GIT — это децентрализованный инструмент управления версией. SVN — это централизованный инструмент управления версией. Весь репозиторий может быть клонирован на локальной системе. История версий хранится в репозитории на стороне сервера. Коммуты возможны даже в автономном режиме. Разрешены только онлайн -коммиты. Работа совместно используется на коммите. Работа не совместно используется автоматически. Операции толкания/вытягивания быстрее в операциях GIT медленные.

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

Используйте следующую команду для создания новой филиала в GIT: $/> GIT Checkout –B

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

В GIT команда Rebase объединяет изменения из одной ветви в другую. А также это альтернатива более известной команде Merge. Наиболее заметно Rebase отличается от слияния, переписывая историю коммита, чтобы произвести прямую линейную последовательность коммитов.

Слияние — это способ вернуть раздробленную историю снова. Команда GIT Merge, чтобы позволить разработчикам взять независимые линии разработки, созданные ветвью GIT, и интегрировать их в одну ветвь.

С Rebase вы говорите, чтобы использовать другую ветвь в качестве новой базы для вашей работы.

Когда использовать git refase вместо Git Merge:

  • Если у вас есть какие -либо сомнения, используйте Git Merge.
  • Выбор для Git Rebase или Merge, основанный на том, как вы хотите, чтобы ваша история выглядела.

Оригинал: «https://dev.to/johnathonroy5/git-interview-questions-for-developers-5e9n»