📦 Настройка и конфигурация
# Установка имени и email
git config --global user.name "Ваше Имя"
git config --global user.email "ваш@email.com"
# Сохранение учётных данных
git config --global credential.helper store
# Просмотр конфигурации
git config --list🆕 Создание и клонирование
# Создать новый локальный репозиторий
git init
# Клонировать удалённый репозиторий
git clone <url-репозитория>
git clone <url> <название-папки> # с указанием имени папки📊 Статус и информация
# Проверить статус файлов
git status
git status -s # краткий формат
# Показать историю коммитов
git log
git log --oneline # краткий вид
git log --graph # с визуализацией веток
git log --author="имя" # фильтр по автору
# Показать изменения
git diff # неиндексированные изменения
git diff --staged # индексированные изменения➕ Добавление файлов
# Добавить все файлы
git add . # все файлы в текущей директории
git add -A # все файлы в репозитории
# Добавить конкретный файл
git add <имя-файла>
# Интерактивное добавление
git add -p💾 Коммиты
# Создать коммит
git commit -m "Сообщение коммита"
# Добавить изменения в последний коммит
git commit --amend -m "Новое сообщение"
# Создать коммит со всеми изменениями (пропуская git add)
git commit -a -m "Сообщение"
# Изменить дату коммита
git commit --amend --date="now"🌳 Ветки (Branching)
# Показать ветки
git branch # локальные
git branch -a # все (локальные + удалённые)
git branch -v # с информацией о последнем коммите
# Создать ветку
git branch <имя-ветки>
git checkout -b <имя-ветки> # создать и переключиться
# Переключиться на ветку
git checkout <имя-ветки>
git switch <имя-ветки> # альтернатива (Git 2.23+)
# Удалить ветку
git branch -d <имя-ветки> # безопасное удаление
git branch -D <имя-ветки> # принудительное удаление
# Переименовать текущую ветку
git branch -m <новое-имя>🔀 Слияние и ребейз
# Слить ветку в текущую
git merge <ветка-для-слияния>
# Отменить слияние
git merge --abort
# Ребейз текущей ветки
git rebase <ветка>
git rebase --abort # отменить ребейз
git rebase --continue # продолжить после разрешения конфликтов
# Интерактивный ребейз (последние N коммитов)
git rebase -i HEAD~N📡 Удалённые репозитории
# Добавить удалённый репозиторий
git remote add origin <url>
# Показать удалённые репозитории
git remote -v
# Получить изменения с удалённого репозитория
git fetch origin
git fetch --all # со всех удалённых репозиториев
# Скачать изменения и слить
git pull origin <ветка>
git pull --rebase # с ребейзом вместо мержа
# Отправить изменения
git push origin <ветка>
git push -u origin <ветка> # установить upstream
# Удалить ветку на удалённом репозитории
git push origin --delete <ветка>↩️ Отмена изменений
# Отменить изменения в файле (до индексации)
git checkout -- <файл>
# Убрать файл из индекса (перед коммитом)
git reset <файл>
# Отменить последний коммит (сохраняя изменения)
git reset --soft HEAD~1
# Отменить последний коммит (удаляя изменения)
git reset --hard HEAD~1
# Временно сохранить изменения
git stash
git stash save "описание"
git stash list # показать stash'и
git stash pop # применить и удалить последний stash
git stash apply # применить, но оставить в списке
git stash drop # удалить stash🏷️ Теги
# Создать тег
git tag v1.0.0
git tag -a v1.0.0 -m "Версия 1.0.0" # аннотированный тег
# Показать теги
git tag
git show v1.0.0 # информация о теге
# Удалить тег
git tag -d v1.0.0
# Отправить теги на удалённый репозиторий
git push origin --tags
git push origin v1.0.0 # конкретный тег🔍 Поиск
# Поиск в коде
git grep "текст" # поиск текста в файлах
git grep -n "текст" # с номерами строк
# Поиск коммитов
git log --grep="текст" # по сообщению
git log -S "текст" # по изменениям в коде🧹 Очистка
# Удалить неотслеживаемые файлы
git clean -n # показать что будет удалено (пробный запуск)
git clean -f # удалить файлы
git clean -fd # удалить файлы и директории
# Сброс к состоянию удалённого репозитория
git fetch origin
git reset --hard origin/<ветка>🛠️ Полезные команды
# Переместить/переименовать файл
git mv <старое-имя> <новое-имя>
# Показать кто менял файл
git blame <файл>
# Просмотр конкретного коммита
git show <хеш-коммита>
# Создать архив репозитория
git archive --format zip --output archive.zip main📝 Полезные алиасы (добавить в ~/.gitconfig)
[alias]
co = checkout
ci = commit
st = status
br = branch
hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
type = cat-file -t
dump = cat-file -p
unstage = reset HEAD --
last = log -1 HEAD
undo = reset --soft HEAD~1💡 Основной рабочий процесс
git pull- получить свежие измененияgit checkout -b feature/new-feature- создать ветку для задачи- Редактирование файлов
git add .- добавить измененияgit commit -m "Описание изменений"- закоммититьgit push origin feature/new-feature- отправить на сервер- Создать Pull Request/Merge Request
⚠️ Важные предупреждения
git reset --hard- безвозвратно удаляет измененияgit push --force- перезаписывает историю (опасно для общей ветки)- Всегда проверяйте
git statusперед критическими операциями - Перед
git cleanиспользуйтеgit clean -nдля проверки
Эта шпаргалка охватывает 95% повседневных задач разработчика. Для более сложных операций всегда можно обратиться к официальной документации: git help <команда> или man git-<команда>.