Skip to content

Команди Git пояснені

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

Git має сотні команд, але щоденній роботі потрібно лише кілька. Ментальна модель така: робоча директорія — це ваші файли, індекс (область staging) — це наступний коміт, а HEAD — поточний коміт. Ви робите stage, робите commit, поширюєте. Читайте status часто. Усе нижче припускає, що команда вже існує, якщо вона перелічена.

Довідкова таблиця · 55 записів
55 of 55 rows
Налаштування та конфігурація
Задає ваше ім'я, email або редактор один раз для всіх репозиторіїв.git config --global user.name "Ada"
Визначає коротке ім'я для команди, яку ви часто вводите.git config --global alias.co checkout
Створює новий репозиторій у поточній папці.git init
Копіює віддалений репозиторій на вашу машину.git clone git@github.com:org/repo.git
Копіює лише найновіші коміти однієї гілки.git clone --depth 1 --single-branch git@github.com:org/repo.git
Основи знімків
Показує, що додано до stage, змінено та не відстежується.git status -sb
Додає зміни до stage, щоб вони потрапили в наступний коміт.git add src/app.ts
Переглядає зміни фрагмент за фрагментом і додає до stage лише прийняті.git add -p src/app.ts
Додає до stage зміни всіх відстежуваних файлів, не додаючи нових.git add -u
Записує додані до stage зміни як новий коміт.git commit -m "fix: null check"
Замінює останній коміт виправленим.git commit --amend -m "fix: handle empty input"
Показує зміни, не додані до stage, або додані з --staged.git diff --staged
Показує всі зміни з останнього коміту, додані до stage чи ні.git diff HEAD
Гілки та злиття
Показує, створює або видаляє гілки.git branch feature-x
Видаляє злитту гілку (-D робить це примусово, -a показує всі гілки).git branch -d feature-x
Перемикає гілки (сучасна заміна checkout).git switch feature-x
Створює нову гілку й перемикається на неї за один крок.git switch -c feature-x
Перемикає гілки або відновлює файли (старіша, ширша команда).git checkout feature-x
Вносить зміни іншої гілки в поточну.git merge feature-x
Скасовує злиття з конфліктами й повертає гілку до попереднього стану.git merge --abort
Повторно застосовує коміти поточної гілки поверх іншої гілки.git rebase main
Об'єднує, перевпорядковує або редагує коміти під час повторного застосування.git rebase -i main
Копіює один коміт з іншої гілки в цю.git cherry-pick a1b2c3d
Позначає коміт читабельною міткою, наприклад версією.git tag -a v1.2.0
Виводить іншу гілку в окрему папку одночасно з поточною.git worktree add ../repo-feature feature-x
Дослідження історії
Проходить історію комітів.git log --oneline --graph --decorate
Проходить історію всіх гілок, а не лише поточної.git log --oneline --graph --all
Показує повний diff і повідомлення одного коміту.git show HEAD
Показує, хто останнім змінював кожен рядок файлу.git blame src/app.ts
Показує кожен коміт, на який вказував HEAD, включно з віддаленими.git reflog
Шукає в історії половинами, щоб знайти коміт, який щось зламав.git bisect start
Підсумовує коміти за авторами.git shortlog -sn
Називає поточний коміт відліком від найближчого тега.git describe --tags
Віддалена співпраця
Показує або додає віддалені репозиторії.git remote add origin <url>
Показує віддалені сховища з їхніми URL для fetch і push.git remote -v
Завантажує віддалені зміни, не змінюючи ваші гілки.git fetch origin
Завантажує віддалені зміни та відкидає посилання на видалені віддалені гілки.git fetch --prune
Завантажує та зливає віддалені зміни поточної гілки.git pull --rebase
Надсилає локальні коміти у віддалене сховище.git push -u origin feature-x
Перезаписує віддалену гілку, але лише якщо ніхто не зробив push раніше.git push --force-with-lease origin feature-x
Скасування змін
Відкидає зміни робочої директорії або прибирає їх зі stage.git restore src/app.ts
Прибирає файл зі stage і зберігає його зміни в робочій директорії.git restore --staged src/app.ts
Переміщує вершину поточної гілки та, за потреби, індекс.git reset --hard HEAD~1
Додає новий коміт, який скасовує попередній (безпечно поширювати).git revert HEAD
Видаляє невідстежувані файли та папки.git clean -fd
Stash
Зберігає незакомічену роботу й скидає робочу директорію.git stash -u
Показує всі stash, які ви зберегли.git stash list
Знову застосовує stash і зберігає його в списку.git stash apply stash@{1}
Видаляє stash, який вам більше не потрібен.git stash drop stash@{1}
Знову застосовує найновіший stash і видаляє його.git stash pop
Файли та підмодулі
Переміщує або перейменовує файл і додає зміну до stage.git mv old.ts src/new.ts
Видаляє файл і додає видалення до stage.git rm src/old.ts
Відстежує інший репозиторій як папку всередині цього.git submodule add git@github.com:org/lib.git lib
Виводить лише названі вами папки з великого репозиторію.git sparse-checkout set src docs
Експортує дерево коміту як файл tar або zip.git archive -o repo.zip HEAD