Git і GitHubШпаргалка

Шпаргалка: Git і GitHub

Команда → що робить. Без довгих пояснень.

Старт і конфіг

  • git init

    Робить поточну теку репозиторієм (.git).

  • git clone URL

    Копіює remote-репозиторій з історією.

  • git clone URL назва

    Клонує в теку з іншою назвою.

  • git config user.name "…"

    Імʼя автора для комітів у цьому repo.

  • git config user.email "…"

    Email автора для комітів у цьому repo.

Щоденна робота

  • git status

    Що змінено, що в staging, що ще не відстежується.

  • git add file

    Кладе файл у staging (список на коміт).

  • git add .

    Додає всі зміни в поточній теці й нижче.

  • git add -p

    Додає зміни шматками, з підтвердженням.

  • git commit -m "…"

    Зберігає staging як новий коміт.

  • git commit -am "…"

    Add відстежуваних файлів + commit одразу.

  • git commit --amend

    Переписує останній коміт (лише до push).

  • git diff

    Різниця у файлах, які ще не в staging.

  • git diff --staged

    Різниця того, що вже піде в коміт.

  • git restore file

    Скидає незакомічені зміни у файлі.

  • git restore --staged file

    Прибирає файл зі staging, зміни лишає.

  • git rm file

    Видаляє файл і ставить видалення в staging.

  • git rm --cached file

    Припиняє відстеження, файл на диску лишає.

Гілки

  • git branch

    Список локальних гілок; поточна з *.

  • git branch назва

    Створює гілку, не перемикаючись.

  • git branch -d назва

    Видаляє злиту гілку.

  • git branch -D назва

    Видаляє гілку примусово.

  • git branch -m нова

    Перейменовує поточну гілку.

  • git switch назва

    Переходить на іншу гілку.

  • git switch -c назва

    Створює гілку й одразу на неї переходить.

  • git switch -

    Повертається на попередню гілку.

  • git checkout -b назва

    Старий еквівалент switch -c.

Злиття й перенесення

  • git merge гілка

    Вливає гілку в поточну.

  • git merge --abort

    Скасовує незавершене злиття.

  • git rebase гілка

    Перекладає ваші коміти поверх іншої гілки.

  • git rebase -i HEAD~n

    Інтерактивно змінює / склеює останні n комітів.

  • git rebase --continue

    Продовжує rebase після вирішення конфлікту.

  • git rebase --abort

    Скасовує rebase цілком.

  • git cherry-pick hash

    Копіює один коміт у поточну гілку.

  • git cherry-pick --continue

    Продовжує cherry-pick після конфлікту.

  • git cherry-pick --abort

    Скасовує cherry-pick.

Remote: fetch, pull, push

  • git remote -v

    Показує URL усіх remote.

  • git remote add origin URL

    Підключає remote під іменем origin.

  • git remote add upstream URL

    Додає оригінал після fork.

  • git fetch origin

    Завантажує коміти з remote без злиття.

  • git fetch --all

    Fetch з усіх remote.

  • git pull

    Fetch + merge у поточну гілку.

  • git pull --rebase

    Fetch + rebase локальних комітів.

  • git push

    Відправляє локальні коміти на remote.

  • git push -u origin гілка

    Перший push гілки + привʼязка upstream.

  • git push origin :гілка

    Видаляє гілку на remote.

  • git push --force-with-lease

    Force після rebase, якщо remote не змінився.

Історія й скасування

  • git log

    Список комітів від новіших до старіших.

  • git log --oneline --graph --all

    Компактний граф усіх гілок.

  • git log -p file

    Історія файлу з diff.

  • git show hash

    Деталі одного коміту + diff.

  • git reflog

    Журнал переміщень HEAD (навіть «втрачені» коміти).

  • git reset --soft HEAD~1

    Прибирає коміт, зміни лишає в staging.

  • git reset HEAD~1

    Прибирає коміт, зміни лишає у файлах.

  • git reset --hard HEAD~1

    Прибирає коміт і всі його зміни.

  • git reset --hard HEAD@{n}

    Повертає стан з reflog.

  • git revert hash

    Новий коміт, що скасовує зміни hash.

  • git bisect start

    Починає бінарний пошук поганого коміту.

  • git bisect good|bad

    Позначає коміт під час bisect.

  • git bisect reset

    Виходить з режиму bisect.

Stash

  • git stash

    Ховає незакомічені зміни на поличку.

  • git stash list

    Список схованого.

  • git stash pop

    Повертає останнє й прибирає з полички.

  • git stash apply

    Повертає сховане, лишає копію на поличці.

  • git stash apply stash@{n}

    Повертає конкретний запис зі списку.

  • git stash drop

    Видаляє останній запис зі stash.

Теги

  • git tag

    Список тегів.

  • git tag v1.0

    Легкий тег на поточному коміті.

  • git tag -a v1.0 -m "…"

    Анотований тег з повідомленням.

  • git push origin v1.0

    Відправляє тег на remote.

  • git push origin --tags

    Відправляє всі локальні теги.

Підмодулі

  • git submodule add URL шлях

    Підключає чужий repo як підмодуль.

  • git submodule status

    Показує commit, на якому «сидить» підмодуль.

  • git submodule update --init

    Ініціалізує й підтягує підмодулі після clone.

Ignore, hooks, GitHub

  • .gitignore

    Патерни файлів, які Git ігнорує (*.log, .env, dist/).

  • pre-commit

    Hook: скрипт перед комітом (лінтер тощо).

  • commit-msg

    Hook: перевірка формату повідомлення коміту.

  • pre-push

    Hook: перевірка перед push (тести).

  • Pull Request

    Запит злити гілку через review на GitHub.

  • Squash and merge

    Зливає PR в один коміт на цільовій гілці.

  • git fetch upstream && git merge upstream/main

    Підтягує оновлення з оригіналу після fork.

← До програми курсу