Для того, чтобы получить информацию о коммитах, выполните команду git log (англ. log, «журнал»):
# команда для просмотра истории коммитов
git log
# присвоенный коммиту уникальный идентификатор
commit c952d9626e27a4d6249faf368c7d22655476365c (HEAD -> master)
# имя и почта разработчика, отправившего коммит
Author: test <test@yandex.ru>
# дата коммита
Date: Fri Oct 11 16:00:04 2019 +0300
# список изменённых файлов
added readme.txt
commit a22f3328b28ab901c12a4e7a5ce8fc543a6ed991
Author: test <test@yandex.ru>
Date: Fri Oct 11 15:58:36 2019 +0300
added new file
Чтобы выйти из режима просмотра, нажмите клавишу [Q] (англ. «quit«, «выйти»).
Show: что изменилось в файлах?
Показать изменения, внесённые в определённом коммите, можно командой git show (англ. show, «показать»). Она продемонстрирует не просто лог, а конкретные изменения в коде. Укажите коммит, который вас интересует. Самый свежий коммит будет показан по указателю HEAD:
# эта команда выведет на экран последний коммит
git show HEAD
# результат:
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..49861b8
--- /dev/null
# показано, в каком файле произвели изменения:
+++ b/.gitignore
# номер измененной строки
@@ -0,0 +1 @@
# добавленная строка:
+Я изучаю Git, он нужен, чтобы сохранять изменения при разработке
\ No newline at end of file
Полную информацию о любом коммите можно получить командой git show 1234567
, где вместо 1234567
нужно указать первые 7 символов контрольной суммы нужного коммита. Это первые семь символов после слова commit в сообщении git log
:
# для просмотра всех коммитов
git log
commit c952d9626e27a4d6249faf368c7d22655476365c (HEAD -> master)
# чтобы посмотреть какие именно были изменения в коммите,
# скопируйте первые семь символов после слова commit
# и поставьте их после команды git show
# эта команда служит для просмотра изменений в коммите
git show c952d96
Чтобы выйти из режима просмотра, нажмите клавишу [Q].
Reset: отказ от изменений
Git — это машина времени. Git может вернуть ваш код в любое предыдущее состояние, если оно сохранено в коммите. Для этого есть команда git reset (англ. reset, «сброс в исходное состояние»). Чтобы вернуться к определённому коммиту, нужно выполнить команду git reset
и через пробел указать первые семь символов контрольной суммы нужного коммита, точно так же, как с командой git show
:
# смотрим список коммитов
git log
# коммит 7639878
commit 76398788bf9c9aba93e4903ead47f1ee6d99976c (HEAD -> feature)
Author: Yandex Practicum <practicum@yandex.ru>
Date: Thu Oct 25 17:13:01 2018 +0300
Del all file # какой-то... разработчик по ошибке удалил все файлы и закоммитил это. Молодец.
# коммит 97a25f7
commit 97a25f73849d758dca110bf4a70a29d6f42373ae (master)
Author: test <test@yandex.ru>
Date: Thu Oct 25 17:02:36 2018 +0300
First commit: change program.py
# откатываемся до коммита, в котором все файлы ещё на месте
git reset 97a25f7
Можно откатиться на один коммит назад в определённом файле, указав его имя через HEAD:
git reset HEAD program.py
# откатили изменения до предыдушего коммита
Указатель HEAD означает самый последний коммит. Если не указать имя, то сбросятся все изменения до состояния последнего коммита:
git reset HEAD
# откатили изменения во всех файлах до предыдущего коммита