Skip to content

Команды Git

Скачать PDF

Навигация по командам

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

Основные команды

Настройка (Конфигурация Git)

Перед первым использованием Git нужно настроить ваше имя и email. Эта информация будет использоваться для подписи всех ваших коммитов.

bash
# Установка имени пользователя
git config --global user.name "Ваше Имя"

# Установка email
git config --global user.email "ваш.email@example.com"

# Проверка настроек
git config --list

Создание и клонирование репозиториев

Инициализация начинает новый Git проект, а клонирование копирует существующий репозиторий на ваш компьютер.

bash
# Инициализация нового репозитория
git init

# Клонирование существующего репозитория
git clone https://github.com/username/repository.git

# Клонирование определенной ветки
git clone -b branch-name https://github.com/username/repository.git

Основной рабочий процесс

Типичный рабочий процесс: проверьте статус → добавьте файлы → создайте коммит → просмотрите историю.

bash
# Проверка статуса репозитория
git status

# Добавление файлов в индекс
git add file.txt
git add *.js
git add .

# Создание коммита
git commit -m "Сообщение коммита"

# Добавление и коммит одной командой (для отслеживаемых файлов)
git commit -am "Сообщение коммита"

# Просмотр истории коммитов
git log
git log --oneline
git log --graph --oneline --all

Работа с удаленными репозиториями

Синхронизируйте ваш локальный репозиторий с удаленным сервером (GitHub, GitLab и т.д.).

bash
# Добавление удаленного репозитория
git remote add origin https://github.com/username/repository.git

# Просмотр удаленных репозиториев
git remote -v

# Получение изменений без слияния
git fetch origin

# Получение изменений и слияние
git pull origin master

# Отправка изменений
git push origin master

# Установка отслеживания удаленной ветки
git push -u origin master

Продвинутые команды

Работа с ветками

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

bash
# Создание новой ветки
git branch new-branch

# Переключение на ветку
git checkout branch-name

# Создание и переключение на новую ветку
git checkout -b new-branch

# Просмотр всех веток
git branch
git branch -a  # включая удаленные ветки

# Удаление ветки
git branch -d branch-name
git branch -D branch-name  # принудительное удаление

# Переименование ветки
git branch -m old-name new-name

Слияние и перебасирование

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

bash
# Слияние ветки в текущую
git merge branch-name

# Перебасирование текущей ветки на другую
git rebase branch-name

# Интерактивное перебасирование
git rebase -i HEAD~3  # для последних 3 коммитов

Временное сохранение изменений (Stash)

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

bash
# Сохранение изменений во временное хранилище
git stash

# Сохранение с сообщением
git stash save "Сообщение"

# Просмотр списка сохранений
git stash list

# Применение последнего сохранения
git stash apply

# Применение конкретного сохранения
git stash apply stash@{2}

# Применение и удаление последнего сохранения
git stash pop

# Удаление последнего сохранения
git stash drop

# Удаление конкретного сохранения
git stash drop stash@{2}

# Очистка всех сохранений
git stash clear

Работа с тегами

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

bash
# Создание легковесного тега
git tag v1.0.0

# Создание аннотированного тега
git tag -a v1.0.0 -m "Версия 1.0.0"

# Просмотр тегов
git tag

# Просмотр информации о теге
git show v1.0.0

# Отправка тегов в удаленный репозиторий
git push origin v1.0.0
git push origin --tags  # отправка всех тегов

Отмена изменений

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

bash
# Отмена изменений в рабочей директории
git checkout -- file.txt

# Отмена изменений в индексе
git reset HEAD file.txt

# Отмена последнего коммита с сохранением изменений
git reset --soft HEAD^

# Отмена последнего коммита без сохранения изменений
git reset --hard HEAD^

# Создание нового коммита, отменяющего изменения
git revert commit-hash

Просмотр изменений

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

bash
# Просмотр изменений в рабочей директории
git diff

# Просмотр изменений в индексе
git diff --staged

# Просмотр изменений между коммитами
git diff commit1 commit2

# Просмотр изменений в файле между коммитами
git diff commit1 commit2 -- file.txt

Поиск и фильтрация

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

bash
# Поиск коммитов по автору
git log --author="Имя"

# Поиск коммитов по сообщению
git log --grep="ключевое слово"

# Поиск коммитов, затрагивающих определенный файл
git log -- file.txt

# Поиск строки в истории
git log -S"строка для поиска"

Очистка и обслуживание

Поддерживайте ваш репозиторий в чистоте и здоровом состоянии.

bash
# Удаление неотслеживаемых файлов
git clean -f

# Удаление неотслеживаемых файлов и директорий
git clean -fd

# Интерактивная очистка
git clean -i

# Сжатие репозитория
git gc

# Проверка целостности репозитория
git fsck

Алиасы (сокращения команд)

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

bash
# Создание алиаса
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status

# Пример использования алиаса
git co master  # эквивалентно git checkout master

Полезные однострочные команды

bash
# Просмотр графика коммитов в одну строку
git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short

# Поиск всех больших файлов в репозитории
git rev-list --objects --all | git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' | awk '/^blob/ {print substr($0,6)}' | sort -k2nr | head -n 10

# Список авторов с количеством коммитов
git shortlog -sn

Заключение

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

Полезные ресурсы