Использование git log
для поиска отмененных коммитов
На этом этапе мы научимся использовать команду git log
для поиска коммитов, которые были отменены. Отмена коммита означает создание нового коммита, который отменяет изменения, внесенные предыдущим коммитом. Это полезно, когда вы совершили ошибку и хотите легко ее отменить, не теряя историю исходного коммита.
Сначала убедимся, что мы находимся в директории нашего проекта. Откройте терминал и перейдите в директорию my-time-machine
:
cd ~/project/my-time-machine
Теперь создадим несколько коммитов, чтобы имитировать историю проекта, включая коммит, который мы позже отменим.
Создайте первый файл:
echo "Initial content" > file1.txt
git add file1.txt
git commit -m "Add file1"
Вы должны увидеть вывод, похожий на следующий:
[master (root-commit) a1b2c3d] Add file1
1 file changed, 1 insertion(+)
create mode 100644 file1.txt
Теперь добавим еще немного содержимого и создадим еще один коммит:
echo "Adding more content" >> file1.txt
git add file1.txt
git commit -m "Add more content to file1"
Вы должны увидеть вывод, похожий на следующий:
[master 4e5f6g7] Add more content to file1
1 file changed, 1 insertion(+)
Далее создадим коммит, который мы отменим позже:
echo "This commit will be reverted" > file2.txt
git add file2.txt
git commit -m "Add file2 (will be reverted)"
Вы должны увидеть вывод, похожий на следующий:
[master 8h9i0j1] Add file2 (will be reverted)
1 file changed, 1 insertion(+)
create mode 100644 file2.txt
Теперь отменим последний коммит. Мы можем использовать команду git revert HEAD
, чтобы отменить самый последний коммит:
git revert HEAD --no-edit
Флаг --no-edit
сообщает Git автоматически создать сообщение для отменяющего коммита без открытия редактора. Вы должны увидеть вывод, похожий на следующий:
[master k2l3m4n] Revert "Add file2 (will be reverted)"
1 file changed, 1 deletion(-)
delete mode 100644 file2.txt
Отлично! Теперь мы создали коммит, который отменяет изменения, внесенные коммитом "Add file2 (will be reverted)".
Теперь используем команду git log
для просмотра истории коммитов и поиска отменяющего коммита:
git log --oneline
Вы должны увидеть вывод, похожий на следующий:
k2l3m4n (HEAD -> master) Revert "Add file2 (will be reverted)"
8h9i0j1 Add file2 (will be reverted)
4e5f6g7 Add more content to file1
a1b2c3d Add file1
Обратите внимание на сообщение коммита "Revert 'Add file2 (will be reverted)'". Это явно показывает, что этот коммит отменяет предыдущий коммит. Использование команды git log
с флагом --oneline
- это быстрый способ просмотреть сводку истории коммитов и идентифицировать отменяющие коммиты по их сообщениям.