Git Cheatsheet
Основные команды
Заголовок раздела «Основные команды»Инициализация
Заголовок раздела «Инициализация»# Создание нового репозиторияgit init
# Клонирование репозиторияgit clone <url>Конфигурация
Заголовок раздела «Конфигурация»# Настройка имени пользователяgit config --global user.name "Ваше Имя"
# Настройка emailgit config --global user.email "your.email@example.com"
# Просмотр настроекgit config --listРабота с файлами
Заголовок раздела «Работа с файлами»# Проверка статусаgit status
# Добавление файла в индексgit add <filename>
# Добавление всех файловgit add .
# Добавление всех изменений в индексgit add -A
# Удаление файла из индексаgit reset <filename>
# Сброс всех изменений в рабочей директорииgit checkout -- <filename>Коммиты
Заголовок раздела «Коммиты»# Создание коммитаgit commit -m "Описание изменений"
# Изменение последнего коммитаgit commit --amend
# Добавление изменений и создание коммитаgit commit -am "Описание изменений"История
Заголовок раздела «История»# Просмотр истории коммитовgit log
# Просмотр в сокращённом видеgit log --oneline
# Просмотр с графом ветокgit log --graph --oneline --all
# Просмотр изменений в коммитеgit show <commit-hash>
# Просмотр изменений между коммитамиgit diff <commit1> <commit2>Ветвление
Заголовок раздела «Ветвление»# Создание новой веткиgit branch <branch-name>
# Переключение на веткуgit checkout <branch-name>
# Создание и переключениеgit checkout -b <branch-name>
# Просмотр ветокgit branch
# Удаление веткиgit branch -d <branch-name>
# Принудительное удалениеgit branch -D <branch-name>
# Переименование веткиgit branch -m <old-name> <new-name>Слияние
Заголовок раздела «Слияние»# Слияние ветки в текущуюgit merge <branch-name>
# Отмена слиянияgit merge --abort
# Решение конфликтов# (редактируйте файлы с конфликтами)git add <conflicted-file>git commit -m "Разрешение конфликтов"Удалённые репозитории
Заголовок раздела «Удалённые репозитории»# Добавление удалённого репозиторияgit remote add origin <url>
# Просмотр удалённых репозиториевgit remote -v
# Отправка измененийgit push -u origin <branch>
# Получение измененийgit pull origin <branch>
# Получение без слиянияgit fetch origin
# Удаление удалённой веткиgit push origin --delete <branch>Отмена изменений
Заголовок раздела «Отмена изменений»# Отмена последнего коммита (сохраняет изменения)git reset --soft HEAD~1
# Отмена последнего коммита (удаляет изменения)git reset --hard HEAD~1
# Откат к конкретному коммитуgit reset --hard <commit-hash>
# Отмена изменений в файлеgit checkout HEAD -- <filename>Временное сохранение
Заголовок раздела «Временное сохранение»# Сохранение текущих измененийgit stash
# Просмотр сохранённых измененийgit stash list
# Восстановление сохранённых измененийgit stash pop
# Удаление сохранённых измененийgit stash drop# Поиск по коммитамgit log --grep="текст"
# Поиск по кодуgit grep "текст"
# Поиск авторовgit log --author="имя".gitignore
Заголовок раздела «.gitignore»Основные правила
Заголовок раздела «Основные правила»# Комментарии начинаются с #
# Игнорирование конкретного файлаconfig.py
# Игнорирование по шаблону*.log*.tmp
# Игнорирование директории__pycache__/venv/
# Игнорирование во всех поддиректориях**/test.py
# Исключение из игнорирования!important.pyТипичный .gitignore для Python
Заголовок раздела «Типичный .gitignore для Python»# Python__pycache__/*.py[cod]*$py.class*.so.Pythonbuild/develop-eggs/dist/downloads/eggs/.eggs/lib/lib64/parts/sdist/var/wheels/*.egg-info/.installed.cfg*.egg
# Virtual Environmentvenv/env/ENV/.venv
# IDE.vscode/.idea/*.swp*.swo
# OS.DS_StoreThumbs.db
# Environment.env.env.local
# Jupyter.ipynb_checkpoints/*.ipynb
# Database*.db*.sqlite*.sqlite3Основные команды
Заголовок раздела «Основные команды»# Клонирование репозиторияgit clone https://gitlab.com/username/project.git
# Создание новой ветки и отправка на GitLabgit checkout -b feature-branch# вносите измененияgit add .git commit -m "Описание"git push -u origin feature-branch
# Создание Merge Request через web-интерфейс GitLabРабота с Issues
Заголовок раздела «Работа с Issues»- Перейдите в раздел Issues
- Нажмите New issue
- Заполните заголовок и описание
- Нажмите Submit issue
Создание Merge Request
Заголовок раздела «Создание Merge Request»- Нажмите Merge requests в боковом меню
- Нажмите New merge request
- Выберите исходную и целевую ветку
- Заполните описание изменений
- Нажмите Create merge request
Рабочий процесс (Workflow)
Заголовок раздела «Рабочий процесс (Workflow)»Feature Branch Workflow
Заголовок раздела «Feature Branch Workflow»# 1. Создание новой ветки для фичиgit checkout -b feature/new-feature
# 2. Внесение изменений# редактируйте файлыgit add .git commit -m "Добавлена новая фича"
# 3. Отправка на удалённый репозиторийgit push -u origin feature/new-feature
# 4. Создание Merge Request в GitLab
# 5. После слияния удаление веткиgit checkout maingit pull origin maingit branch -d feature/new-featuregit push origin --delete feature/new-featureGitflow Workflow
Заголовок раздела «Gitflow Workflow»# Основные ветки:# main - для продакшена# develop - для разработки
# Создание ветки develop (если нет)git checkout -b develop
# Создание ветки для фичиgit checkout -b feature/new-feature develop
# Внесение измененийgit add .git commit -m "Описание"
# Слияние в developgit checkout developgit merge --no-ff feature/new-featuregit push origin developgit branch -d feature/new-feature
# Релизgit checkout -b release/1.0 develop# финальные правкиgit checkout maingit merge --no-ff release/1.0git tag -a v1.0 -m "Версия 1.0"git push origin main --tagsПолезные советы
Заголовок раздела «Полезные советы»# Создание алиасовgit config --global alias.co checkoutgit config --global alias.br branchgit config --global alias.ci commitgit config --global alias.st status
# Использование алиасовgit co main # вместо git checkout maingit br # вместо git branchПросмотр изменений
Заголовок раздела «Просмотр изменений»# Сравнение с индексомgit diff
# Сравнение индекса с последним коммитомgit diff --staged
# Сравнение ветокgit diff main developИнтерактивное добавление
Заголовок раздела «Интерактивное добавление»# Интерактивное добавление файловgit add -i
# Интерактивное добавление по частямgit add -p