GitHub. История изменений. Откат

Для того, чтобы получить информацию о коммитах, выполните команду 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
# откатили изменения во всех файлах до предыдущего коммита 


Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: