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

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

git revert

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

git revert <commit-hash>

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

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

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

Останній коміт

Ось його хеш:

1b00736255dca7d78659a9971d0c30fba0eb3075

Note
Примітка

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

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

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

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

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

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

Note
Примітка

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

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

Перш ніж вирішити, який коміт відкотити, перегляньте чотири останні коміти:

Чотири останні коміти

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

043b634d76a7a7744757350512b6367417c29e0

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

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

Git revert

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

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

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

Останній коміт

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

Перелік файлів і директорій

Файл 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:

Натисніть або перетягніть елементи та заповніть пропуски

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Suggested prompts:

What happens if I revert a commit that is not the most recent one?

Can I revert multiple commits at once?

What should I do if I encounter a merge conflict during a revert?

Awesome!

Completion rate improved to 3.57

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

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

git revert

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

git revert <commit-hash>

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

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

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

Останній коміт

Ось його хеш:

1b00736255dca7d78659a9971d0c30fba0eb3075

Note
Примітка

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

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

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

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

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

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

Note
Примітка

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

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

Перш ніж вирішити, який коміт відкотити, перегляньте чотири останні коміти:

Чотири останні коміти

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

043b634d76a7a7744757350512b6367417c29e0

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

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

Git revert

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

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

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

Останній коміт

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

Перелік файлів і директорій

Файл 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:

Натисніть або перетягніть елементи та заповніть пропуски

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

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

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

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