Git собеседования – Telegram
Git собеседования
612 subscribers
98 photos
183 links
Подготовка к собеседованиям в IT

Еще больше разобранных вопросов для подготовки на сайте https://frontview-it.ru

Frontend - @frontview_it
Backend - @frontview_backend
Все IT вакансии - @frontview_all_vacancies
Download Telegram
🔥 Что такое commit history и как ее анализировать?

Commit history — это последовательность коммитов, представляющая изменения, внесённые в репозиторий с течением времени. Каждый коммит содержит уникальный идентификатор, автора, дату и сообщение, описывающее изменения.

Для анализа истории коммитов используется команда git log. Она позволяет увидеть все коммиты в текущей ветке:


git log


Для более краткого отображения можно использовать флаг --oneline, который выводит каждый коммит в одну строку:


git log --oneline


Флаг --graph добавляет визуализацию структуры ветвления:


git log --oneline --graph


Анализируя commit history, можно понять, какие изменения были внесены, кем и когда. Это помогает отслеживать развитие проекта и выявлять проблемные изменения.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥1
🔥 Как использовать HTTPS для доступа к Git?

Для доступа к Git-репозиториям через HTTPS необходимо использовать URL-адрес, начинающийся с https://. Это позволяет клонировать, извлекать и отправлять изменения в удалённый репозиторий через защищённое соединение.

Чтобы клонировать репозиторий по HTTPS, используется команда:


git clone https://github.com/user/repo.git


При выполнении операций push или pull через HTTPS может потребоваться ввод имени пользователя и пароля. Для упрощения процесса аутентификации можно использовать менеджеры учётных данных, такие как Git Credential Manager, который сохраняет учётные данные и автоматически предоставляет их при необходимости.

Для изменения удалённого URL на HTTPS используется команда:


git remote set-url origin https://github.com/user/repo.git


Это позволяет безопасно управлять репозиториями через HTTPS.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12💯1
🔥 Как работает система контроля версий в SVN?

Subversion (SVN) — это централизованная система контроля версий, которая позволяет отслеживать изменения в файлах и каталогах. В отличие от распределённых систем, таких как Git, SVN использует центральный репозиторий, где хранятся все версии файлов.

Основные операции в SVN включают:

1. Checkout: получение копии репозитория на локальную машину. Выполняется командой:


svn checkout https://svn.example.com/repo


2. Update: обновление локальной копии до последней версии из репозитория:


svn update


3. Commit: отправка изменений из локальной копии в центральный репозиторий:


svn commit -m "Commit message"


4. Revert: отмена локальных изменений:


svn revert filename


SVN позволяет работать с ветками и тегами, но все изменения фиксируются в центральном репозитории, что упрощает управление доступом и контроль версий.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍721
🔥 Как использовать "squash" для объединения коммитов?

Squash в Git используется для объединения нескольких коммитов в один, что помогает сделать историю коммитов более чистой и понятной. Это особенно полезно перед слиянием ветки в основную ветку.

Для выполнения squash используется интерактивный режим rebase. Сначала необходимо выбрать коммиты, которые нужно объединить:


git rebase -i HEAD~N


Здесь N — количество последних коммитов, которые нужно объединить. Откроется текстовый редактор, где для всех коммитов, кроме первого, нужно заменить pick на squash или s.

После сохранения изменений откроется другой редактор для редактирования сообщения объединённого коммита. Здесь можно изменить или оставить сообщение по умолчанию.

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

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍711
🔥 Что такое "nested repositories"?

Nested repositories — это ситуация, когда один Git-репозиторий находится внутри другого. Это может привести к путанице и проблемам с управлением версиями, так как Git не поддерживает вложенные репозитории по умолчанию.

При наличии вложенного репозитория Git будет игнорировать внутренний .git каталог, если он не добавлен как подмодуль. Это значит, что изменения в вложенном репозитории не будут отслеживаться внешним репозиторием.

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


git submodule add https://github.com/user/repo.git path/to/submodule


Это позволяет управлять зависимостями и избегать проблем, связанных с вложенными репозиториями.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
🔥 Как переключиться на другую ветку?

Для переключения на другую ветку в Git используется команда git checkout. Это позволяет работать с различными версиями кода, хранящимися в разных ветках.

Чтобы переключиться на существующую ветку, выполняется команда:


git checkout branch-name


Если необходимо создать новую ветку и сразу переключиться на неё, используется флаг -b:


git checkout -b new-branch-name


С версии Git 2.23 и выше рекомендуется использовать команду git switch для переключения между ветками, так как она более интуитивно понятна:


git switch branch-name


И для создания и переключения на новую ветку:


git switch -c new-branch-name


Эти команды позволяют легко управлять ветками и переключаться между ними в процессе разработки.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82💯2
🔥 Чем отличается "Fork" от "Clone" на Github?

Fork и Clone — это два разных действия на GitHub, которые часто используются в процессе работы с репозиториями.

Fork — это создание копии чужого репозитория в собственном аккаунте GitHub. Это позволяет вносить изменения в проект без влияния на оригинальный репозиторий. Fork часто используется для участия в open-source проектах. После внесения изменений можно создать pull request, чтобы предложить изменения в оригинальный репозиторий.

Clone — это копирование репозитория (собственного или чужого) на локальный компьютер. Это позволяет работать с кодом офлайн и использовать все возможности Git для управления версиями. Команда для клонирования репозитория выглядит так:


git clone <URL репозитория>


Таким образом, Fork используется для создания независимой копии на GitHub, а Clone — для работы с репозиторием локально.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10💯1
🔥 Что такое Git Flow?

Git Flow — это модель ветвления для Git, предложенная Винсентом Дриссеном, которая помогает организовать процесс разработки. Она определяет строгие правила для создания и слияния веток, что упрощает управление проектами.

Основные ветки в Git Flow:

1. master или main — содержит стабильный код, готовый к релизу.
2. develop — основная ветка для разработки, куда сливаются все новые функции.

Дополнительные ветки:

- feature — создаются от develop для разработки новых функций. После завершения сливаются обратно в develop.
- release — создаются для подготовки к релизу. После тестирования сливаются в master и develop.
- hotfix — создаются от master для исправления критических ошибок. После исправления сливаются в master и develop.

Git Flow помогает структурировать процесс разработки и облегчает управление релизами и исправлениями.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍151
🔥 Как увидеть различия в коде с помощью git diff?

Для просмотра различий в коде используется команда git diff. Она позволяет увидеть изменения, которые были внесены в файлы, но еще не добавлены в индекс, а также различия между различными коммитами или ветками.

Пример использования для просмотра изменений в рабочем каталоге:


git diff


Для просмотра изменений, которые уже добавлены в индекс, но еще не закоммичены:


git diff --cached


Чтобы увидеть различия между двумя коммитами, используется:


git diff commit1 commit2


Для сравнения двух веток:


git diff branch1 branch2


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

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1
🔥 Что такое "detached HEAD" и как его исправить?

"Detached HEAD" в Git возникает, когда HEAD указывает на конкретный коммит, а не на ветку. Это состояние позволяет просматривать или изменять код, но изменения не будут привязаны к какой-либо ветке, что может привести к их потере.

Чтобы исправить "detached HEAD", можно создать новую ветку из текущего состояния и продолжить работу в ней. Это делается с помощью команды:


git checkout -b <новая_ветка>


Если необходимо вернуться к существующей ветке, можно переключиться на нее с помощью:


git checkout <имя_ветки>


Важно помнить, что любые изменения, сделанные в состоянии "detached HEAD", должны быть сохранены перед переключением, чтобы избежать их потери.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
🔥 Как обновлять подмодули?

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


git submodule init


Затем следует обновить подмодули до последней версии, указанной в репозитории, используя:


git submodule update


Если требуется обновить подмодули до последней версии из их удаленных репозиториев, можно использовать:


git submodule update --remote


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


git commit -am "Update submodules"


Эти команды помогут поддерживать подмодули в актуальном состоянии.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6💯1
🔥 Как работать с pull requests в команде?

Работа с Pull Requests (PR) в команде — важная часть совместной разработки.

Создание PR начинается с форка или клонирования репозитория и создания новой ветки для изменений. После завершения работы изменения пушатся в удаленный репозиторий, и создается PR через интерфейс платформы, например, GitHub.

Команда может просматривать PR, оставлять комментарии и предлагать улучшения. После одобрения PR можно слить с основной веткой.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
🔥 Что такое кодстайл и зачем он нужен?

Кодстайл — это набор правил и рекомендаций по оформлению исходного кода, который определяет единообразие в написании кода в проекте.

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

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

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
🔥 Как отменить изменения в файле?

Отмена изменений в файле в Git зависит от состояния изменений.

Если изменения не были добавлены в индекс, можно отменить их с помощью команды:


git checkout -- <имя_файла>


Эта команда восстановит файл до последнего закоммиченного состояния.

Если изменения уже добавлены в индекс, но не закоммичены, их можно убрать из индекса с помощью:


git reset HEAD <имя_файла>


После этого можно использовать команду git checkout, чтобы отменить изменения в рабочей копии.

Если изменения уже закоммичены, но требуется их отменить, можно использовать:


git revert <хеш_коммита>


Эта команда создаст новый коммит, отменяющий изменения предыдущего.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112
🔥 Что такое 'HEAD' в Git?

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

Когда выполняется переключение между ветками с помощью git checkout, 'HEAD' обновляется, чтобы указывать на последний коммит новой активной ветки.

В состоянии "detached HEAD" 'HEAD' указывает на конкретный коммит, а не на ветку. Это позволяет просматривать или изменять код без привязки к ветке, но требует осторожности, чтобы не потерять изменения.

'HEAD' играет ключевую роль в управлении состоянием репозитория и навигации по истории коммитов.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🔥 Как переименовать ветку?

Переименование ветки в Git можно выполнить несколькими способами, в зависимости от того, активна ли ветка.

Если требуется переименовать текущую активную ветку, используется команда:


git branch -m <новое_имя_ветки>


Если необходимо переименовать неактивную ветку, используется:


git branch -m <старое_имя_ветки> <новое_имя_ветки>


После локального переименования ветки изменения нужно отразить в удаленном репозитории. Для этого удаляется старая ветка и пушится новая:


git push origin --delete <старое_имя_ветки>
git push origin <новое_имя_ветки>


Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103
🔥 Что такое "origin" в Git?

В Git "origin" — это стандартное имя для удаленного репозитория, с которым связан локальный репозиторий. Обычно "origin" используется по умолчанию при клонировании репозитория, обозначая URL-адрес удаленного репозитория, откуда был склонирован проект.

"Origin" позволяет легко взаимодействовать с удаленным репозиторием, выполняя команды git push для отправки изменений и git pull для получения обновлений.

Имя "origin" можно изменить или добавить другие удаленные репозитории с помощью команды:


git remote rename origin <новое_имя>


или


git remote add <имя> <URL>


"Origin" играет ключевую роль в управлении синхронизацией между локальным и удаленным репозиториями.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102🔥2
🔥 Как создать тег?

Создание тега в Git позволяет обозначить конкретные точки в истории коммитов, такие как релизы или важные изменения.

Существует два типа тегов: аннотированные и легковесные.

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


git tag -a <имя_тега> -m "Сообщение тега"


Легковесный тег создается без дополнительной информации с помощью:


git tag <имя_тега>


Чтобы отправить теги в удаленный репозиторий, используется команда:


git push origin <имя_тега>


Или для отправки всех тегов:


git push origin --tags


Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1
🔥 Как посмотреть статус репозитория?

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


git status


После выполнения команды выводится информация о:

1. Изменениях, которые были внесены в файлы, но еще не добавлены в индекс (staged).
2. Файлах, которые были добавлены в индекс, но еще не закоммичены.
3. Неотслеживаемых файлах, которые находятся в рабочем каталоге, но не добавлены в индекс.

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

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
🔥 Как исключить файл из .gitignore?

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

Если файл уже был добавлен в .gitignore и закоммичен, то необходимо удалить его из индекса Git, чтобы изменения вступили в силу. Это можно сделать с помощью команды:


git rm --cached <путь_к_файлу>


После этого файл будет отслеживаться Git, даже если он указан в .gitignore.

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


git commit -m "Remove <путь_к_файлу> from .gitignore"


Таким образом, файл будет исключен из .gitignore и начнет отслеживаться.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
🔥 Как создать новую ветку?

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

Для создания новой ветки используется команда:


git branch <имя_ветки>


Эта команда создаст новую ветку на основе текущего состояния репозитория. Чтобы переключиться на новую ветку и начать работу в ней, используется команда:


git checkout <имя_ветки>


Для создания и одновременного переключения на новую ветку можно использовать сокращенную команду:


git checkout -b <имя_ветки>


Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2