Skip to content

Git

Git — распределённая система контроля версий

~HEAD - указатель на текущую ветку или прямо на коммит

commit 8d50bdc760d773c22113fc7d3e353ecf099c7e13 (HEAD -> main, origin/main, origin/HEAD)

Author: Райн Гослинг 118374481+Driver@users.noreply.github.com Date: Sun May 10 14:31:19 2026 +0300

Initial commit

hash - уникальный код коммита. Для удобства можно использовать первые 7 символов хеша вместо всех 40.

Commands

git init

  • git init - создает новый пустой репозиторий Git

git clone

  • git clone <you're-repo> - копирование репозитория.

    В gitlab или github есть возможность скопировать ссылку или комманду целиком


git status

  • git status - показывает текущее состояние рабочего каталога и индекса

git diff

  • git diff - показывает разницу между текущим и закоммиченными файлами

git log

  • git log - просмотр лога коммитов
  • --graph - добавляет в вывод графы

git branch

  • git branch - просмотр веток или создание веток, если указать название

git checkout

  • git checkout <branch> - переключение на ветку
  • git checkout -b <branch> - создание и переключение на созданную ветку
  • get checkout HEAD~1 - возвращает файл к аредыдущему состоянию

    Быстрая откатка при неудачном коммите


git push

  • git push - пуш изменений в репозиторий
  • git push origin <name-branch> - пуш изменений при отсутсвии ветки в удаленном репозитории

    При выполнении просто git push в терминале будет подсказка, если подтребуется выполнить git push origin <name-branch>


git show

  • git show <hash> - раскрывает содерживое коммита: что изменилось, что добавилось

git blame

  • git blame <file-name> - показывает, какой коммит что изменил в файле

git add

  • git add . - сохранение или добавление всех изменений
  • git add <file_name> - сохранение конкреного файла

    Точка указывает на сохранение всех изменений в локальном репозитории. Вместо точки можно указать имя конкретного файла


git commit

  • git commit - создание коммита. Открывается vim редактор для создания коммита
  • git commit -m '<message>' - создание коммита. -m позволяет сразу написать название коммита без открытия редактора
  • git commit -am '<message>' - создание коммита уже с именем и сохранением всех файлов -a
  • git commit --amend -m '<message>' - добавляет новые изменения в последний коммит

    Коммит должен отображать что именно было изменено или добавлено "feature: add generate create randon file"


git revert/reset

  • git revert/reset <hash> - Используются для отката изменений

    Из практики: лучше создать новый коммит, где удаляется то, что нужно


git merge

  • git merge <branch_name> - слияние веток. Вливание нужную ветку в ту, на которую сейча указывает HEAD
До merge:
main:    A---B
              \
feature:       C---D

После merge (fast-forward):
main:    A---B---C---D

git rebase

  • git rebase <branch_name> - переносит или объединяет изменения из одной ветки в другую, переписывая историю коммитов

Важно

Использовать осторожно. Применяется при squash. Если есть возможность не использовать, то не использовать