Полезные команды для работы с репозиторием git
Команды git
Самые часто используемые команды git
Клонирование удаленного репозитория на локальный компьютер
Команда git clone
git clone https://github.com/user/repo.git [Стандартный клон]
git clone --branch <branch_name> https://github.com/user/repo.git [Клон конкретной ветки]
git clone --depth 1 https://github.com/user/repo.git [Клон только с историей коммитов (shallow clone)]
Отображение текущего состояния рабочего каталога и индекса
Команда git status
git status [Базовый статус]
git status --short [Краткий статус]
git status --untracked-files=no [Игнорировать изменения в файлах]
Добавление изменений в индекс (staging area)
Команда git add
git add . [Добавляет все изменения]
git add src/file.js [Добавить конкретный файл]
git add -u [Добавить изменения, но не добавлять новые файлы]
Создание снимка текущего состояния файлов и индексов
Команда git commit
git commit -m "Added new feature" [Коммит с сообщением]
git commit -a -m "Fixed bug" [Коммит всех изменений (включая untracked files)]
git commit --amend [Ампендинг коммита (исправить последний коммит)]
Отправка локальных коммитов на удалённый репозиторий
Команда git push
git push origin main [Обычная отправка изменений]
git push --force origin main [Форсированная отправка (перезаписать удалённые изменения)]
git push --tags [Только tags]
Загрузка изменения из удалённого репозитория и объединяет их с локальной веткой
Команда git pull
git pull origin main [Простое объединение изменений]
git pull --rebase origin main [Merge strategy]
git fetch origin && git merge origin/main [Fetch and merge отдельно]
Управляние ветками (создание, переключение, удаление)
Команда git branch
git branch -a [Показывает все ветки]
git branch feature-branch [Создать новую ветку]
git checkout feature-branch [Переключиться на ветку]
git branch -d feature-branch [Удалить ветку]
Переключение активной ветки или восстановление файлов
Команда git checkout
git checkout feature-branch
Объединение изменений из одной ветки в другую
Команда git merge
git merge feature-branch [Слияние ветки]
git merge --ff-only feature-branch [Слияние с изменением истории (fast-forward)]
git merge --no-ff feature-branch [Слияние с разрешением конфликтов]
Отображение истории коммитов
Команда git log
:git log [История коммитов]
:git log --oneline [Краткий вывод]
:git log --author="John Doe" [Фильтрация по автору]
Временное сохранение изменений, не готовых для коммита
Команда git stash
git stash
git stash pop
Отмена изменений, внесённых конкретным коммитом, через создание нового коммита
Команда git revert
git revert <commit_hash>
Применение коммита из другой ветки в текущую
Команда git cherry-pick
git cherry-pick <commit_hash>
Сбрасывает HEAD к указанному коммиту
Команда git reset
git reset --hard HEAD~1
Переносит коммиты на вершину другой ветки
Команда git rebase
git rebase master
Сравнение изменений между различными версиями файлов в Git
Команда git diff
git diff HEAD [Показать различия с последним коммитом]
git diff main feature-branch [Показать различия между ветками]
git diff -- src/file.js [Показать только изменения в файле]
git diff --cached [Показывает разницу между индексированными изменениями и последним коммитом]
git diff --staged [Показывает разницу между стадированным индексом и последним коммитом]
git diff --color [Выводит изменения с подсветкой цветов]
git diff --word-diff [Показывает разницу на уровне слов, а не строк]
git diff --diff-filter=D [Показывает только удалённые файлы]
git diff --stat [Показывает компактный отчёт о размере изменений]
git diff --patch [Показывает полные патчи с изменениями]
git diff --shortstat [Показывает сжатую статистику изменений]
git diff --name-only [Показывает только имена изменённых файлов]
git diff --name-status [Показывает имена файлов и их статус (modified, added, deleted)]
git diff --numstat [Показывает изменения в виде чисел (добавленные/удалённые строки)]
git diff --relative [Показывает относительные пути файлов]
git diff --full-index [Показывает полный хеш коммита]
git diff --binary [Включает двоичные файлы в вывод]
git diff --exit-code [Завершает команду с ненулевым кодом, если есть различия]
git diff --quiet [Ничего не выводит, если нет различий]
git diff --no-index file1.txt file2.txt [Позволяет сравнить файлы, не находящиеся под контролем Git]