Відміна Конкретного Коміту
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 було успішно видалено.
Дякуємо за ваш відгук!