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>'- создание коммита уже с именем и сохранением всех файлов-agit 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. Если есть возможность не использовать, то не использовать