Программирование ARM Git: как восстановить потерянный commit? Thu, November 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Git: как восстановить потерянный commit? Печать
Добавил(а) microsin   

Иногда необходимо восстановить более позднее состояние репозитория после того, как был произведен откат на предыдущую точку фиксации commit (после выполнения команды git reset).

Помочь вернуться на нужный commit может команда git reflog. Она показывает все commit-ы репозитория вместе с сокращенным хешем и ссылками HEAD@{n} (где n номер фиксации). После того, как просмотрите список фиксаций командой git reflog, найдите интересующую Вас фиксацию, и сделайте её текущей командой git reset --hard xxxxxxx (здесь xxxxxxx это заголовок хеша фиксации, например a0ac9da), или git reset --hard HEAD@{n} (здесь n это номер фиксации).

c:\ProjDIR\myProject>git reflog
f2459c4 (HEAD -> main) HEAD@{0}: commit: 220127 Исправил влево-вправо для курсора
93daeff HEAD@{1}: commit: 220123 Исправление множества режимов, знакогенераторов для ё
509c2f2 HEAD@{2}: commit: 220128 Исправил DEL, добавил индикатор РУС-ENG-dig
6c432e5 HEAD@{3}: commit: 220115 Исправление режимов под клавиатуру TCA8418
65b292b HEAD@{4}: commit: 220111 Исправил ошибку обработки ~INT.
9048b71 HEAD@{5}: commit: 220110 Продолжение работы над TCA8418
2fb1f10 HEAD@{6}: commit: 220109 Начало добавления новой клавиатуры на TCA8418
1281f26 HEAD@{7}: commit: 211121 CMSIS в отдельной библиотеке
1f920bb HEAD@{8}: commit: 211120 Драйверы HAL в отдельной библиотеке
ab331d9 HEAD@{9}: commit: 220128 Исправил маяки и передачу. Удалил семафор ifsktxsem
7ad0312 HEAD@{10}: commit: 211119 Исправил перекос в меню настроек
d7e57e9 HEAD@{11}: commit: 211117 Доработка теста несущей
be52bd5 HEAD@{12}: commit: 211117 GUI-прогресс теста несущей
48db2a9 HEAD@{13}: commit: 211116 Режим постоянной несущей в меню - завершение
8f136d4 HEAD@{14}: commit: 211115 Режим постоянной несущей в меню
f558280 HEAD@{15}: commit: 211104 Исправлена проблема настройки Si4735
778005a HEAD@{16}: commit: 211103 Мастер I2C клавиатуры на M5Stack, STM32F429 I2C slave
4c0738e HEAD@{17}: commit: 211101 ADC DMA заработал
97ece5a HEAD@{18}: commit: 211030 Начало реализации ADC DMA
d25c726 HEAD@{19}: commit: 211028 Настройка TXRX и другие правки
26a389c HEAD@{20}: commit: 211023 Частоты каналов, таблицы USBBFO и LSBBFO
e222ce2 HEAD@{21}: commit: 211022 void SelectUSBLSBHandler (uint8_t scancode)
eb200da HEAD@{22}: commit: 211022 Установка частоты синтезатора и другие правки
947e486 HEAD@{23}: commit: 211017 Частоты настройки RX TX, а также другие правки
40da3c8 HEAD@{24}: commit: 211012 Исправил ошибку переключения PTT
a0ac9da HEAD@{25}: commit: 211003 Переделка режимов и меню
3e5e5c4 HEAD@{26}: commit: 211002 Добавление переключения раскладки. Модули режимов
5b235fe HEAD@{27}: commit: 210920 Исправил команду fk. Приглашение Hfpager YYMMDD
7891192 HEAD@{28}: commit: 210918 добавил установку частоты приемника

[Что делает git reset]

В репозитории находятся зафиксированные (командой commit) состояния всех файлов, которые обслуживает репозиторий. И команда Эта команда git reset откатывает все текущие файлы в текущей папке репозитория на состояние той точки фиксации, которая была указана (либо через хеш, либо через ссылку HEAD).

Внимание: если Вы не сделали commit перед тем, как выполнили команду git reset, то все сделанные Вами изменения будут утеряны! Поэтому вбейте себе в голову основное правило: как можно чаще делайте commit, и не забывайте при этом давать для него понятный комментарий. Всегда проверяйте себя, была ли сделана фиксация перед тем, как делаете git reset.

[Ссылки]

1. How can I recover a lost commit in Git? site:stackoverflow.com.
2. Git: кодирование символов для сообщений commit.
3Git: просмотр истории фиксаций.
4Git: как переключаться между фиксациями.

 

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


Защитный код
Обновить

Top of Page