Відміна Конкретного Коміту
git revert
Щоб скасувати певний коміт, використовуйте команду git revert.
Ця команда створює новий коміт, який скасовує зміни, внесені зазначеним комітом.
Базовий синтаксис:
git revert <commit-hash>
Замість використання HEAD (який вказує на останній коміт), вкажіть хеш коміту (ID коміту), який потрібно скасувати, замінивши <commit-hash> на фактичне значення хешу.
Докладніше про хеші
Кожен коміт має унікальний ідентифікатор — 40-символьний шістнадцятковий рядок, що складається з цифр (0–9) та літер (a–f). Цей ідентифікатор називається хешем. Тепер перегляньте останній коміт:
Ось його хеш:
1b00736255dca7d78659a9971d0c30fba0eb3075
У вас буде інший хеш для цього коміту з причини, поясненої нижче.
Хеш коміту обчислюється за допомогою алгоритму SHA-1 на основі такої інформації:
- Повідомлення коміту;
- Дата;
- Автор;
- Знімок робочого дерева;
- Хеш батьківського коміту (або комітів, якщо батьків декілька).
Якщо коміт є першим у репозиторії, то хеш батьківського коміту, очевидно, не обчислюється.
Оскільки вся ця інформація про коміт використовується для обчислення його хеша, використання хешів як ідентифікаторів комітів забезпечує цілісність репозиторію. Крім того, ймовірність того, що два різні коміти матимуть однаковий хеш (ймовірність колізії), є надзвичайно низькою, тому це навряд чи станеться випадково.
Фактично, якщо щось змінюється в коміті, його хеш також зміниться. Це означає, що у випадку пошкодження даних з будь-якої причини Git може використати хеш для ідентифікації цієї проблеми.
Під час редагування коміту його ідентифікатор змінюється, тому не рекомендується використовувати команду git commit --amend при роботі з віддаленими репозиторіями.
Приклад робочого процесу
Перш ніж вирішити, який коміт потрібно скасувати, перегляньте чотири останні коміти:
Існує коміт, у якому було додано файл recipe.txt.
Відкотіть цей коміт, щоб створити новий, який скасовує ці зміни та фактично видаляє файл.
У цьому прикладі хеш коміту:
043b634d76a7a7744757350512b6367417c29e0
Ваш хеш коміту буде іншим. Тепер відкотіть цей коміт:
Замініть цей хеш на ваш власний.
Знову відкривається типовий текстовий редактор із типовим повідомленням коміту для відміни. Залиште повідомлення без змін.
Далі коректно закрийте текстовий редактор і перегляньте зміни, внесені в останньому коміті:
7 видалень виконано, тобто всі сім рядків файлу були видалені. Тепер перевірте, чи сам файл був видалений, перелічивши всі неприховані файли та каталоги в директорії проєкту:
Файл recipe.txt було успішно видалено.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
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
Відміна Конкретного Коміту
Свайпніть щоб показати меню
git revert
Щоб скасувати певний коміт, використовуйте команду git revert.
Ця команда створює новий коміт, який скасовує зміни, внесені зазначеним комітом.
Базовий синтаксис:
git revert <commit-hash>
Замість використання HEAD (який вказує на останній коміт), вкажіть хеш коміту (ID коміту), який потрібно скасувати, замінивши <commit-hash> на фактичне значення хешу.
Докладніше про хеші
Кожен коміт має унікальний ідентифікатор — 40-символьний шістнадцятковий рядок, що складається з цифр (0–9) та літер (a–f). Цей ідентифікатор називається хешем. Тепер перегляньте останній коміт:
Ось його хеш:
1b00736255dca7d78659a9971d0c30fba0eb3075
У вас буде інший хеш для цього коміту з причини, поясненої нижче.
Хеш коміту обчислюється за допомогою алгоритму SHA-1 на основі такої інформації:
- Повідомлення коміту;
- Дата;
- Автор;
- Знімок робочого дерева;
- Хеш батьківського коміту (або комітів, якщо батьків декілька).
Якщо коміт є першим у репозиторії, то хеш батьківського коміту, очевидно, не обчислюється.
Оскільки вся ця інформація про коміт використовується для обчислення його хеша, використання хешів як ідентифікаторів комітів забезпечує цілісність репозиторію. Крім того, ймовірність того, що два різні коміти матимуть однаковий хеш (ймовірність колізії), є надзвичайно низькою, тому це навряд чи станеться випадково.
Фактично, якщо щось змінюється в коміті, його хеш також зміниться. Це означає, що у випадку пошкодження даних з будь-якої причини Git може використати хеш для ідентифікації цієї проблеми.
Під час редагування коміту його ідентифікатор змінюється, тому не рекомендується використовувати команду git commit --amend при роботі з віддаленими репозиторіями.
Приклад робочого процесу
Перш ніж вирішити, який коміт потрібно скасувати, перегляньте чотири останні коміти:
Існує коміт, у якому було додано файл recipe.txt.
Відкотіть цей коміт, щоб створити новий, який скасовує ці зміни та фактично видаляє файл.
У цьому прикладі хеш коміту:
043b634d76a7a7744757350512b6367417c29e0
Ваш хеш коміту буде іншим. Тепер відкотіть цей коміт:
Замініть цей хеш на ваш власний.
Знову відкривається типовий текстовий редактор із типовим повідомленням коміту для відміни. Залиште повідомлення без змін.
Далі коректно закрийте текстовий редактор і перегляньте зміни, внесені в останньому коміті:
7 видалень виконано, тобто всі сім рядків файлу були видалені. Тепер перевірте, чи сам файл був видалений, перелічивши всі неприховані файли та каталоги в директорії проєкту:
Файл recipe.txt було успішно видалено.
Дякуємо за ваш відгук!