Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Відміна Конкретного Коміту | Скасування змін
Основи Git

Відміна Конкретного Коміту

Свайпніть щоб показати меню

git revert

Для скасування певного коміту використовується команда git revert. Ця команда створює новий коміт, який скасовує зміни, внесені зазначеним комітом. Базовий синтаксис:

git revert <commit-hash>

Замість використання HEAD (який вказує на останній коміт), вкажіть хеш коміту (ID коміту), який потрібно скасувати, замінивши <commit-hash> на фактичне значення хеша.

Детальніше про хеші

Кожен коміт має унікальний ідентифікатор — 40-символьний шістнадцятковий рядок, що складається з цифр (0–9) та літер (a–f). Цей ідентифікатор називається хешем. Тепер перегляньте останній коміт:

git log -n 1
Останній коміт

Ось його хеш:

1b00736255dca7d78659a9971d0c30fba0eb3075

Note
Примітка

У вас буде інший хеш для цього коміту з причини, поясненої нижче.

Хеш коміту обчислюється за допомогою SHA-1 алгоритму на основі такої інформації:

  • Повідомлення коміту;
  • Дата;
  • Автор;
  • Знімок робочого дерева;
  • Хеш батьківського коміту (або комітів, якщо батьків декілька).

Якщо коміт є першим у репозиторії, то хеш батьківського коміту, очевидно, не обчислюється.

Обчислення хеша

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

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

Note
Примітка

Під час редагування коміту ідентифікатор коміту змінюється, тому краще не використовувати команду git commit --amend при роботі з віддаленими репозиторіями.

Приклад робочого процесу

Перед тим як обрати коміт для скасування, перегляд чотирьох останніх комітів:

git log -n 4
Чотири останні коміти

Існує коміт, у якому було додано файл recipe.txt. Скасування цього коміту створює новий коміт, який відміняє ці зміни та фактично видаляє файл. У цьому прикладі хеш коміту:

043b634d76a7a7744757350512b6367417c29e0

Ваш хеш коміту буде іншим. Тепер скасування цього коміту:

git revert 043b634d76a7aa7744757350512bb3b7417c29e0

Замініть цей хеш на ваш хеш.

Git revert

Знову відкривається типовий текстовий редактор із типовим повідомленням коміту для відміни. Залиште повідомлення без змін.

Типове повідомлення про скасування коміту

Далі правильно закрийте текстовий редактор і відобразіть зміни, внесені в останньому коміті:

git show HEAD
Останній коміт

7 видалень, тобто всі сім рядків файлу були вилучені. Тепер перевірте, що сам файл було видалено, перелічивши всі неприховані файли та каталоги в директорії проєкту:

ls -l
Перелік файлів і каталогів

Файл recipe.txt було успішно видалено.

question-icon

Співставте дії з відповідними командами.


Revert the latest commit:

Revert a specific commit:

Unstage changes:

Revert unstaged changes:

Unstage changes and then revert the changes in the working directory:

Overwrite the existing commit:

Click or drag`n`drop items and fill in the blanks

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 5

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 3. Розділ 5
some-alt