Восстановление и откат файлов

Введение в Git

George Boorman

Curriculum Manager, DataCamp

Ошибка в файлах

Четыре файла в репозитории, три из которых добавлены в область подготовки, а один зафиксирован: report.md, mental health survey.csv и summary statistics.csv

Введение в Git

Откат файлов

  • Восстановление репозитория до состояния перед последним коммитом

  • git revert

    • Восстанавливает предыдущие версии и создаёт коммит
    • Восстанавливает все файлы, изменённые в указанном коммите
    • a845edcb, ebe93178 и т. д.
    • HEAD, HEAD~1 и т. д.
git revert HEAD
Введение в Git

Откат файлов

git revert HEAD

Текстовый редактор показывает, что коммит

  • Сохранить: Ctrl + O, затем Enter
  • Выйти: Ctrl + X
Введение в Git

Откат файлов

[main 7d11f79] Revert "Adding fresh data for the survey."
 Date: Tue Jul 30 14:17:56 2024 +0000
 1 file changed, 3 deletions(-)
Введение в Git

Флаги git revert

  • Без открытия текстового редактора
    git revert --no-edit HEAD
    

 

  • Откат без коммита (файлы переносятся в область подготовки)
    git revert -n HEAD
    
Введение в Git

Откат одного файла

  • git revert работает с коммитами, а не с отдельными файлами

  • Чтобы откатить один файл:

    • git checkout
    • Используйте хеш коммита или синтаксис HEAD
git checkout HEAD~1 -- report.md
Введение в Git

Проверка результата checkout

git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)

        modified:   report.md
Введение в Git

Создание коммита

git commit -m "Checkout previous version of report.md"
[main daa6c87] Checkout previous version of report.md
 1 file changed, 1 deletion(-)
Введение в Git

Удаление файла из области подготовки

Четыре файла в репозитории, три из которых добавлены в область подготовки: report.md, mental health survey.csv и summary statistics.csv

Введение в Git

Удаление файла из области подготовки

Файл summary statistics перемещается из области подготовки обратно в репозиторий

Введение в Git

Удаление одного файла из области подготовки

  • Чтобы убрать один файл из области подготовки:
git restore --staged summary_statistics.csv
  • Отредактируйте файл
git add summary_statistics.csv
git commit -m "Adding age summary statistics"
Введение в Git

Удаление всех файлов из области подготовки

  • Чтобы убрать все файлы из области подготовки:
git restore --staged
Введение в Git

Итоги

Команда Результат
git revert HEAD Откат всех файлов указанного коммита
git revert HEAD --no-edit Откат без открытия текстового редактора
git revert HEAD -n Откат без создания нового коммита
git checkout HEAD~1 -- report.md Откат одного файла из предыдущего коммита
git restore --staged report.md Удаление одного файла из области подготовки
git restore --staged Удаление всех файлов из области подготовки
Введение в Git

Давайте потренируемся!

Введение в Git

Preparing Video For Download...