14.11.2025
Git — это распределённая система управления версиями, используемая разработчиками программного обеспечения для отслеживания изменений исходного кода проекта. Установив Git, вы получите доступ ко многим полезным инструментам, таким как локальные репозитории, коммиты, ветки и слияния.
# Создание нового репозитория git init
# Клонирование существующего репозитория git clone <url>
# Создание коммита git commit -m "Сообщение коммита"
# Просмотр истории коммитов git log
# Создание новой ветки git branch <имя_ветки> # Переключение на ветку git checkout <имя_ветки> # или git switch <имя_ветки> # Создание и переключение на новую ветку git checkout -b <имя_ветки> # или git switch -c <имя_ветки> # Просмотр всех веток git branch
# Просмотр, на что указывает HEAD git rev-parse HEAD # Переключение HEAD на определенный коммит (detached HEAD state) git checkout <хеш_коммита>
# Добавление файла в индекс
git add <файл>
# Добавление всех измененных файлов
git add .
# Интерактивное добавление
git add -i
# Проверка статуса репозитория
git status
# Краткий статус
git status -s
# Просмотр неиндексированных изменений
git diff
# Просмотр индексированных изменений
git diff --staged
# Отмена изменений в рабочей директории
git checkout -- <файл>
# или
git restore <файл>
# Отмена индексации
git reset HEAD <файл>
# или
git restore --staged <файл>
# Изменение сообщения последнего коммита
git commit --amend -m "Новое сообщение"
# Добавление изменений в последний коммит
git add <файл>
git commit --amend --no-edit
# Получение полного SHA текущего коммита git rev-parse HEAD # Получение короткого SHA git rev-parse --short HEAD # Просмотр SHA коммитов в истории git log --onelin
# Мягкий сброс (сохраняет изменения в рабочей директории)
git reset --soft HEAD~1
# Смешанный сброс (сохраняет изменения, но не в индексе)
git reset HEAD~1
# Жесткий сброс (удаляет все изменения)
git reset --hard HEAD~1
# Просмотр авторов строк в файле
git blame <файл>
# С ограничением по строкам
git blame -L 10,20 <файл>
# Поиск строки во всех файлах
git grep "строка_для_поиска"
# Поиск с учетом контекста
git grep -n "строка_для_поиска"
# Поиск только в определенных файлах
git grep "строка_для_поиска" -- "*.js"
# Слияние ветки в текущую git merge <имя_ветки> # Слияние с созданием коммита слияния (no fast-forward) git merge --no-ff <имя_ветки> # Отмена слияния git merge --abort