Шпаргалка по 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>— побачити, хто змінював кожен рядок файлу.