April 12

Шпаргалка по Git


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

Після встановлення Git, варто зазначити ваше ім'я і email, щоб наприклад GitHub міг розуміти що зміни вносить саме ваш акаунт.

Git зберігає ім’я та email автора кожного коміту. Щоб не вводити їх щоразу, виконайте глобальну конфігурацію:

git config --global user.name "Your Name"
git config --global user.email "your@email.com"

Ці значення автоматично підставлятимуться до кожного коміту, що прискорює роботу та забезпечує правильну авторизацію.


Початок роботи

Основні команди для створення нового проєкту або клонування вже існуючого.

  • git init — ініціалізувати новий локальний репозиторій у поточній папці
  • git clone <url> — клонувати віддалений репозиторій (наприклад, з GitHub)
  • git status — перевірити поточний стан: які файли змінено, додано або видалено
  • git log --oneline --graph --all --decorate — побудувати зручне дерево комітів, показати гілки, теги, HEAD

💡 Порада: Створіть аліас для зручного перегляду історії:

alias gitlog='log --oneline --decorate --graph --all'

Тепер замість довгої команди достатньо написати gitlog


📦 Додавання/Коміти

Додавання змін до staging-області, перегляд та створення комітів.

  • git add . — додати всі зміни в поточній папці та її вкладених папках.
  • git add <file> — додати конкретний файл.
  • git add folder/ — додати всі файли з вказаної теки.
  • git add -p — додати зміни частинами — з можливістю прийняти або пропустити кожен блок.
  • git reset <file> — вилучити файл із staging без втрати змін у файлі.
  • git commit -m "повідомлення" — створити новий коміт із вказаним повідомленням.

🌿 Гілки (Branches)

Робота з паралельними гілками: створення, перемикання та злиття.

  • git branch — показати список усіх локальних гілок.
  • git branch <name> — створити нову гілку.
  • git checkout <name> — перейти до існуючої гілки.
  • git checkout -b <name> — створити гілку і відразу перейти до неї.
  • git merge <branch> — злити вказану гілку в поточну.

🌐 Remote (GitHub)

Команди для взаємодії з віддаленим репозиторієм: завантаження, оновлення, синхронізація.

  • git remote -v — показати URL-адреси пов’язаних репозиторіїв (origin, upstream тощо).
  • git push — надіслати зміни у віддалену гілку.
  • git push -u origin <branch> — push + створити зв'язок між локальною та віддаленою гілкою.
  • git pull — отримати та об'єднати зміни з віддаленого репозиторію.
  • git fetch --prune origin — завантажити нові дані та видалити посилання на віддалені гілки, які більше не існують.

🦑 Stash ("заначка")

Tимчасове збереження змін, щоб можна було перемкнутися на іншу гілку без втрати роботи.

  • git stash — сховати всі поточні незакомічені зміни.
  • git stash list — переглянути список усіх схованих змін.
  • git stash apply — відновити останню заначку без видалення з історії.
  • git stash pop — відновити і одразу видалити останню заначку зі списку.

⚠️ Відкат і похідне

Як повернутися до попередніх версій файлів або комітів.

  • git checkout <file> — відновити файл зі збереженого коміту.
  • git reset --soft HEAD~1 — відмінити останній коміт, залишивши зміни у staging.
  • git reset --hard HEAD~1 — повністю видалити останній коміт і всі зміни (⚠️ незворотно!).
  • git revert <hash> — створити коміт, що скасовує вказаний (без втрати історії).
  • git reflog — переглянути історію HEAD (навіть те, що вже недоступне через звичайний log).

🔄 Rebase / Force Push

Команди для переписування історії комітів. Використовуються з обережністю!

  • git pull --rebase — підтягти зміни з remote і "покласти" свої зверху.
  • git push --force-with-lease — форсований push із перевіркою, що ніхто не вніс зміни.
  • git rebase -i HEAD~3 — інтерактивне редагування останніх 3 комітів (об’єднання, зміна опису, видалення).

🧰 Інше

Різні корисні команди, що допоможуть під час роботи з Git.

  • :q — вийти з Vim або less-перегляду (":quit").
  • HEAD — поточне положення в історії комітів (вказівник).
  • staging — проміжний етап перед комітом ("індекс").
  • git diff — показати відмінності між змінами та останнім комітом.
  • git clean -fd — видалити всі нетрекані файли і каталоги.
  • git shortlog -sn — переглянути статистику комітів по авторам (зручно для open source).
  • git show <hash> — показати повну інформацію про конкретний коміт.
  • git blame <file> — побачити, хто змінював кожен рядок файлу.