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

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

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

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

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

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

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

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

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

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

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