- Опубліковано
- 4 хв читання
Шпаргалка з Git
- Автори
- Ім’я
- Learna

Git зберігає версії проєкту як знімки. Зміни спершу з’являються в робочій папці, потім ви додаєте потрібні з них до індексу (staging area), а з нього створюєте коміт. Перш ніж щось скасовувати, з’ясуйте, на якому етапі перебувають зміни:
working tree --git add--> index --git commit--> local history --git push--> remote
Налаштування
Показати налаштування:
git config --list
Задати ім’я автора для всіх своїх репозиторіїв:
git config --global user.name "Your Name"
Початок роботи
Створити репозиторій у поточній папці:
git init
Клонувати репозиторій:
git clone <URL>
Додавання змін до індексу
Перевірити стан файлів та індексу:
git status
Переглянути зміни, ще не додані до індексу:
git diff
Переглянути зміни, уже додані до індексу:
git diff --staged
Додати зміни вибраного файлу до індексу:
git add path/to/file
Додати до індексу всі зміни в поточній папці, зокрема нові файли:
git add .
Коміти
Створити коміт зі змін в індексі:
git commit -m "Describe the change"
Додати зміни у вже відстежуваних файлах до індексу й одразу створити коміт. Нові файли ця команда не додасть:
git commit -a -m "Describe the change"
Переглянути останні коміти:
git log --oneline
Доповнити останній локальний коміт змінами, які вже додано до індексу:
git commit --amend --no-edit
Команда створює нову версію останнього коміту з іншим ID. Якщо цей коміт уже є в інших розробників, спершу домовтеся з ними, як оновлюватимете спільну гілку.
Гілки
Показати локальні гілки:
git branch
Створити гілку й перейти до неї:
git switch -c feature/search
Перейти до наявної гілки:
git switch main
Повернутися до попередньої гілки:
git switch -
Перейменувати поточну гілку на main:
git branch -m main
Видалити гілку, переконавшись, що її зміни вже збережені або більше не потрібні:
git branch -d feature/search
Віддалені репозиторії та обмін змінами
Показати налаштовані віддалені репозиторії:
git remote -v
Додати віддалений репозиторій:
git remote add origin <URL>
Отримати коміти й оновити посилання на віддалені гілки, не змінюючи поточної гілки:
git fetch origin
Злити зміни з origin/main у поточну гілку:
git merge origin/main
Надіслати локальну гілку main у віддалений репозиторій і зв’язати її з origin/main. У прикладі гілка має назву main:
git push -u origin main
Отримати й застосувати оновлення з гілки, яку поточна гілка відстежує (upstream):
git pull
Скасувати злиття, яке ще триває:
git merge --abort
Скасування змін
Прибрати зміни файлу з індексу, але залишити їх у робочій папці:
git restore --staged path/to/file
Скасувати зміни відстежуваного файлу, які ще не додано до індексу. Файл відновиться до версії з індексу:
git restore path/to/file
Друга команда видаляє ці зміни. Спершу перегляньте git diff: Git не зберігає надійної історії, з якої їх можна було б повернути.
Повернути поточну гілку на один коміт назад, залишивши його зміни в індексі:
git reset --soft HEAD~1
Такий reset переписує локальну історію. Якщо коміт уже надіслано у спільну гілку, краще скасувати його зміни окремим новим комітом:
git revert <COMMIT_ID>
Тимчасове збереження — stash
Відкласти зміни відстежуваних файлів — як додані до індексу, так і решту:
git stash push -m "work in progress"
Зберегти в stash також нові невідстежувані файли. Проігноровані файли -u не додає:
git stash push -u -m "work in progress"
Показати список записів stash:
git stash list
Повернути зміни з найновішого запису stash, не видаляючи сам запис:
git stash apply stash@{0}
Повернути зміни з найновішого запису stash і видалити запис, якщо все вдалося:
git stash pop
Перебазування
Rebase переносить коміти поточної гілки на нову базу, створюючи їх заново з іншими ID. Використовуйте його для локальних комітів. Якщо з ними вже працюють інші розробники, спершу узгодьте переписування історії. У прикладі базова гілка — main:
git fetch origin
git rebase origin/main
Окремі робочі папки — worktree
Створити гілку hotfix від наявної main і відкрити її в окремій робочій папці. У поточній робочій папці гілка не зміниться:
git worktree add -b hotfix ../hotfix main
Переглянути всі робочі папки репозиторію:
git worktree list
Докладніше читайте в офіційній документації Git, про git restore, git switch і тимчасове збереження змін у stash.