Gernar
Git, сборка и DevOps

Какие знаешь команды в Git

Разбор вопроса «Какие знаешь команды в Git» для Frontend Developer: что проверяет интервьюер, ключевые тезисы, практические примеры и частые ошибки.

Вопрос

Какие знаешь команды в Git

Профессия

Frontend Developer

Что хочет услышать интервьюер

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

Ключевые тезисы

  • Основные команды для работы с репозиторием: git init, git clone, git remote.
  • Команды для работы с ветками: git branch, git checkout, git merge.
  • Команды для отслеживания изменений: git status, git diff, git log.
  • Команды для фиксации изменений: git add, git commit, git push, git pull.
  • Команды для отмены изменений: git reset, git revert, git stash.

Подробный ответ

Git — это распределённая система контроля версий, которая позволяет отслеживать изменения в коде и эффективно работать в команде. Основные команды Git можно разделить на несколько категорий: работа с репозиторием, управление ветками, отслеживание изменений, фиксация изменений и отмена изменений. Команды git init и git clone используются для создания нового репозитория или копирования существующего. git remote позволяет управлять удалёнными репозиториями. Для работы с ветками используются git branch, git checkout и git merge. Эти команды помогают создавать, переключаться между ветками и объединять изменения. Для отслеживания изменений в коде полезны git status, git diff и git log. Они показывают текущее состояние репозитория, различия между файлами и историю коммитов. Фиксация изменений выполняется с помощью git add, git commit, git push и git pull. Эти команды добавляют изменения в индекс, создают коммиты, отправляют их на сервер и загружают изменения с сервера. Для отмены изменений можно использовать git reset, git revert и git stash. Эти команды позволяют отменять коммиты, возвращаться к предыдущим версиям и временно сохранять изменения.

Практические примеры

Пример 1

Создание новой ветки и переключение на неё: git checkout -b new-feature

Пример 2

Отмена последнего коммита без удаления изменений: git reset --soft HEAD~1

Пример 3

Сравнение изменений между ветками: git diff main..feature

Пример 4

Временное сохранение незакоммиченных изменений: git stash

Пример 5

Изменение последнего коммита: git commit --amend

Частые ошибки

  • Использование git pull без предварительного git fetch, что может привести к конфликтам
  • Удаление ветки без предварительного слияния изменений, что может привести к потере кода
  • Использование git reset --hard без сохранения изменений, что может привести к необратимой потере данных

Связанные темы

  • Работа с удалёнными репозиториями (GitHub, GitLab, Bitbucket)
  • Разрешение конфликтов слияния
  • Использование .gitignore для исключения файлов из отслеживания
  • Git hooks для автоматизации задач

Follow-up вопросы

Как создать новую ветку и сразу переключиться на неё?

Уровень: basic

Для создания новой ветки и переключения на неё используется команда git checkout -b <имя_ветки>. Эта команда создаёт ветку и сразу перемещает указатель HEAD на неё.

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

Уровень: intermediate

Чтобы отменить последний коммит, но сохранить изменения в рабочей директории, используйте команду git reset --soft HEAD~1. Это вернёт изменения в индекс, но не удалит их из рабочей директории.

Как сравнить изменения между двумя ветками?

Уровень: intermediate

Для сравнения изменений между двумя ветками используется команда git diff <ветка1>..<ветка2>. Она покажет различия между последними коммитами в этих ветках.

Как временно сохранить незакоммиченные изменения?

Уровень: basic

Для временного сохранения незакоммиченных изменений используется команда git stash. Она сохраняет изменения в стеке, позволяя переключиться на другую ветку или выполнить другие операции.

Как изменить последний коммит, добавив новые изменения?

Уровень: intermediate

Чтобы добавить новые изменения в последний коммит, используйте команду git commit --amend. Это откроет редактор для изменения сообщения коммита и добавит текущие изменения в индекс.

Содержание