Вивчай
Git

Git шпаргалка: всі основні команди

Git шпаргалка — всі основні командиGit шпаргалка — всі основні команди

Тримай під рукою — тут зібрані найпотрібніші Git команди, від перших кроків до просунутих прийомів.

Якщо ти тільки починаєш — почни з уроку про основи Git.

Налаштування

КомандаЩо робить
git config --global user.name "Ім'я"Встановити ім'я автора
git config --global user.email "email@example.com"Встановити email
git config --listПереглянути всі налаштування
git initСтворити новий репозиторій
git clone <url>Клонувати існуючий репозиторій

Базовий робочий процес

КомандаЩо робить
git statusПоказати стан робочої директорії
git status -sКороткий формат статусу
git add <файл>Додати файл до staging area
git add .Додати всі змінені файли
git add -pДодати зміни інтерактивно (по частинах)
git commit -m "повідомлення"Зафіксувати зміни з повідомленням
git commit --amendЗмінити останній коміт
git diffПоказати незафіксовані зміни
git diff --stagedПоказати зміни в staging area

Гілки

КомандаЩо робить
git branchСписок локальних гілок
git branch -aСписок усіх гілок (локальні + remote)
git branch <назва>Створити нову гілку
git branch -d <назва>Видалити гілку (безпечно)
git branch -D <назва>Видалити гілку примусово
git switch <назва>Перейти на іншу гілку
git switch -c <назва>Створити гілку і перейти на неї
git merge <гілка>Злити гілку в поточну
git merge --abortСкасувати злиття
Інфо

git switch — новіша команда (Git 2.23+), спеціально для перемикання між гілками. git checkout все ще працює, але switch зрозуміліший.

Remote (віддалені репозиторії)

Детальніше про роботу з GitHub — в уроці про remote репозиторії.

КомандаЩо робить
git remote -vПоказати remote з URL
git remote add <ім'я> <url>Додати новий remote
git push <remote> <гілка>Відправити коміти на сервер
git push -u origin <гілка>Перший push з прив'язкою гілки
git push -d origin <гілка>Видалити гілку на сервері
git pullЗавантажити і злити зміни з remote
git fetchЗавантажити зміни без злиття
git fetch --allЗавантажити з усіх remote

Історія

КомандаЩо робить
git logПовна історія комітів
git log --onelineКоміти в один рядок
git log --oneline --graph --allВізуальне дерево гілок
git log --author="Ім'я"Фільтр по автору
git log --since="2 weeks ago"Коміти за останні 2 тижні
git show <хеш>Деталі конкретного коміту
git blame <файл>Хто змінював кожен рядок файлу
git reflogЖурнал усіх дій (для відновлення)

Скасування змін

КомандаЩо робить
git restore <файл>Скасувати зміни в робочій директорії
git restore --staged <файл>Прибрати файл зі staging area
git reset HEAD~1Скасувати останній коміт (зміни залишаться)
git reset HEAD~1 --softСкасувати коміт, зміни залишаться в staging
git reset HEAD~1 --hardСкасувати коміт і видалити зміни
git revert <хеш>Створити новий коміт, що скасовує зміни
git clean -fdВидалити невідстежувані файли та папки
Увага

git reset --hard видаляє зміни безповоротно. Якщо працюєш у команді — використовуй git revert, він безпечніший.

Stash (тимчасове сховище)

КомандаЩо робить
git stashСховати незафіксовані зміни
git stash listСписок усіх stash-записів
git stash popПовернути останній stash і видалити його
git stash applyПовернути stash без видалення
git stash dropВидалити останній stash

Теги (для релізів)

КомандаЩо робить
git tagСписок усіх тегів
git tag v1.0.0Створити легкий тег
git tag -a v1.0.0 -m "опис"Створити анотований тег
git push origin v1.0.0Відправити тег на сервер
git push origin --tagsВідправити всі теги

Просунуті команди

КомандаЩо робить
git rebase <гілка>Перебазувати поточну гілку
git rebase -i HEAD~3Інтерактивний rebase (переписати 3 коміти)
git cherry-pick <хеш>Застосувати конкретний коміт з іншої гілки
git bisect startБінарний пошук коміту з багом
git worktree add <шлях> <гілка>Окрема робоча директорія для гілки

Корисні аліаси

Додай їх через git config --global alias.<скорочення> '<команда>':

АліасКомандаДля чого
ststatusШвидкий статус
cocheckoutПеремикання гілок
brbranchРобота з гілками
cicommitКоміт
undoreset HEAD~1 --mixedСкасувати останній коміт
lastlog -1 HEADОстанній коміт
visuallog --graph --oneline --allДерево гілок
# Приклад: додати аліас "st" для "status"
git config --global alias.st status

# Тепер замість "git status" можна писати:
git st
Інфо