Вопросы на собеседовании по Git
Что такое Git?
Git — это система управления версиями, которая позволяет отслеживать изменения в коде и координировать работу нескольких разработчиков над одним проектом. Она позволяет сохранять историю изменений, возвращаться к предыдущим версиям, вносить исправления и сливать изменения из разных веток.
Git — обеспечивает возможность работать локально без подключения к серверу, что делает его очень гибким и популярным инструментом среди разработчиков.
Систему Git создал в 2005 году Линус Торвальдс, когда вместе с командой разрабатывал ядро операционной системы Linux.
Основные команды Git
git init — инициализация нового репозитория.
git add — добавление изменений из рабочей директории в индекс.
git commit — сохранения изменений в репозитории с описанием.
git status — отслеживание текущего состояния репозитория.
git config — запись, чтение и настройка конфигурации Git.
git branch — отображение текущей ветки, создание новых веток, удаление веток.
git checkout — переключение на другие ветки.
git merge — слияние веток.
Инициализация репозитория «git init»
git init — команда для создания нового репозитория Git в пустой директории или существующем проекте. Создает скрытую директорию .git, где хранятся данные и конфигурации. После выполнения проект становится отслеживаемым Git, позволяя использовать функции контроля версий.
Настройка конфигураций «git config»
git config — позволяет устанавливать и просматривать настройки репозитория Git или глобальные настройки пользователя. С помощью git config можно задать параметры, такие как имя пользователя, адрес электронной почты, типы редакторов для коммитов, формат отображения логов и многое другое. Настройки могут быть установлены либо локально для конкретного репозитория, либо глобально для всех репозиториев на компьютере.
Установка имени пользователя и email:
git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"
Проверка пользователя:
git config user.name
git config user.email
С версии 2.28 в Git можно задать другое имя для ветки по умолчанию при инициализации репозитория с помощью git init:
git config --global init.defaultBranch nameBranch
Просмотр всех настроек:
git config --list
Настройка текстового редактора для сообщений коммита в Git [vs code]:
git config --global core.editor "code --wait"
Добавление изменений «git add»
git add — добавляет изменение из рабочего каталога в раздел проиндексированных файлов.
Добавление сразу всех изменений в индекс:
git add .
Добавление конкретного файла:
git add file_name
Добавление директории:
git add directory_name
Запись изменений «git commit»
git commit — позволяет записать / зарегистрировать изменения, внесённые в файлы локального репозитория. При этом новый набор изменений (в дальнейшем коммит) получает свой уникальный идентификатор (hash), по которому его можно найти.
Основные параметры:
-m «Сообщение» — позволяет добавить краткое описание изменений в коммите прямо из командной строки.
-a — автоматически добавляет все измененные файлы к коммиту.
-am «Сообщение» — комбинация параметров -a и -m, позволяющая добавить все изменения и сообщение коммита одновременно.
Состояние репозитория «git status»
git status — отображает текущую ветку и текущее состояние рабочего каталога и индекса.
А также показывает измененные, добавленные или удаленные файлы, их статус (отслеживаемые, не отслеживаемые, измененные).
Если изменений нет, то Git выведет сообщение:
«nothing to commit, working tree clean».
Управления ветками «git branch»
git branch — используется для просмотра текущих веток, создания новых или удаления ненужных веток в репозитории Git.
Получить список всех локальных веток:
git branch
Получить список всех локальных и удаленных веток:
git branch -a
Получить список всех удаленных веток
git branch -r
Получить имя текущей ветки:
git branch --show-current
Создать новую ветку с указанным именем:
git branch branch_name
Удалить указанную ветку (если она уже была слита с основной веткой):
git branch -d branch_name
Принудительно удалить указанную ветку, даже если изменения не были слиты:
git branch -D branch_name
Переименовать текущую ветку:
git branch -m branch_name
Просмотр последнего коммита в каждой ветке:
git branch -v
Переключение веток «git checkout»
git checkout — используется для переключения между ветками, восстановления файлов из предыдущих коммитов и создания новых веток.
Переключение на другую ветку:
git checkout branch_name
Создание новой ветки и переключение на нее:
git checkout -b branch_name
Восстановление файлов из определенного коммита:
git checkout commit_hash -- путь_к_файлу
Восстановление всех файлов из определенного коммита:
git checkout commit_hash .
Отмена изменений в рабочем каталоге:
git checkout -- file_name