Страницы

Поиск по вопросам

суббота, 28 декабря 2019 г.

Git откатить rebase [дубликат]

#git #git_rebase


        
             
                
                    
                        
                            This question already has an answer here:
                            
                        
                    
                
                        
                            Как вернуться (откатиться) к более раннему коммиту?
                                
                                    (1 ответ)
                                
                        
                                Закрыт 6 месяцев назад.
            
                    
Такая ситуация, что вместо merge сделал rebase. Получается изменения коряво слились,
как можно откатиться к моему локальному коммиту, до того как был сделан rebase и коммит ?
    


Ответы

Ответ 1



Ищите в рефлоге прошлый HEAD-коммит ветки, которую нужно восстановить к прошлому состоянию: $ git reflog # это просто пример, у вас будут другие id и строки 91e9b6e HEAD@{0}: rebase finished: returning to refs/heads/master 91e9b6e HEAD@{1}: rebase: checkout @{-1} a26257f HEAD@{2}: checkout: ... 91e9b6e HEAD@{3}: commit: ... ... Просто ищите коммит с тем сообщением, которое вам нужно. Он будет третьим в списке, если вы больше ничего не делали после ребейза. На всякий случай сделаем бэкап git branch backup Потом восстановим текущую ветку к найденному коммиту. Можно использовать как id, так и указатель HEAD@{номер} git reset --hard HEAD@{2} Если всё прошло удачно, можно удалять бэкап git branch -D backup Подробнее о git reset --hard: Как вернуться (откатиться) к более раннему коммиту?

Ответ 2



В дополнение к ответу выше. Чтобы не использовать git-reflog и не копировать хэши, поможет команда с откатом по времени, например: git reset --hard master@{"10 minutes ago"} или git reset --hard master@{12:30} также должны поддерживаться такие варианты: {yesterday}, {1 month 2 weeks 3 days 1 hour 1 second ago}, {1979-02-26 18:30:00} Если Вы примерно знаете, когда совершили лишнее действие, то можете откатиться с помощью данной команды.

Комментариев нет:

Отправить комментарий