Перейти к содержанию

Инициализация и подключение

git init                                      # Инициализация пустого локального репозитория
git remote add origin <URL>                   # Привязать удалённый репозиторий
git remote -v                                 # Показать подключённые удалённые репозитории
git remote show origin                        # Подробная информация о remote
git remote set-url origin <NEW_URL>           # Сменить URL удалённого репозитория
git clone <URL>                               # Клонировать репозиторий

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

git status                                    # Состояние рабочей директории и индекса
git pull origin <branch>                      # Получить изменения из удалённой ветки
git add .                                     # Добавить все изменения в индекс
git add <file>                                # Добавить конкретный файл в индекс
git commit -S -m "message"                    # Подписанный коммит с сообщением
git push origin <branch>                      # Отправить изменения в удалённый репозиторий
git push --set-upstream origin <branch>       # Связать локальную ветку с удалённой
git show HEAD                                 # Информация о последнем коммите
git log --oneline --graph --decorate --all    # Граф истории коммитов
tree -I "dir1|dir2"                           # Дерево проекта с исключением каталогов

Индексирование

git add -i                                    # Интерактивное добавление в индекс
git add -p                                    # Добавить изменения по частям (hunk)
git reset                                     # Убрать все изменения из индекса (сохранить в рабочей директории)
git reset <file>                              # Убрать из индекса конкретный файл
git reset HEAD <file>                         # Убрать файл из индекса (синоним)
git reset HEAD~                               # Отменить последний коммит (изменения останутся)
git reset --hard HEAD~                        # Удалить последний коммит вместе с изменениями
git reset --hard origin/<branch>              # Сбросить ветку до состояния удалённой (ОПАСНО)
git checkout -- <file>                        # Откатить файл до состояния в индексе (ОПАСНО)
git clean -df                                 # Удалить неотслеживаемые файлы и директории
git clean -fdn                                # Предварительный просмотр перед удалением

Ветки

git branch                                    # Список локальных веток
git branch -a                                 # Список всех веток (включая удалённые)
git branch <name>                             # Создать новую ветку
git checkout <branch>                         # Переключиться на ветку
git checkout -b <branch>                      # Создать и переключиться
git branch -m <old> <new>                     # Переименовать ветку
git branch -d <branch>                        # Удалить локальную ветку
git push origin --delete <branch>             # Удалить ветку на удалённом репозитории
git push origin <new-name>                    # Опубликовать переименованную ветку
git branch -u origin/<branch> <branch>        # Установить upstream для ветки

Слияние и ребейз

git merge <branch>                            # Слить ветку в текущую
git merge --no-ff <branch>                    # Слить без fast-forward (сохранить историю)
git rebase <branch>                           # Переместить коммиты поверх указанной ветки
git pull --rebase origin <branch>             # Получить изменения через rebase
git fetch origin                              # Получить изменения без слияния
git fetch --all --prune                       # Получить все ветки и удалить устаревшие

Конфликты и восстановление

git status                                    # Показать файлы с конфликтами
git checkout -- <file>                        # Отменить изменение в файле
git reset --hard origin/<branch>              # Жёсткий сброс до удалённой ветки
git remote set-head origin -a                 # Обновить указатель HEAD удалённого репозитория
git stash                                     # Сохранить изменения во временное хранилище
git stash pop                                 # Восстановить последние сохранённые изменения
git stash list                                # Список сохранённых stash

Logo