2010-10-18 3 views
6

Я запустил git pull --rebase и прервал это после исправления нескольких конфликтов слияния, используя git rebase --abort.Git: восстановить расходящийся репозиторий после неудачной перезагрузки

Перед попыткой перезагрузки git status сказал мне: «Ваша ветка впереди« происхождение/мастер »на 20 коммитов». Теперь я получаю: «Ваша ветка и« происхождение/мастер »расходятся и имеют соответственно 15 и 5 разных фиксаций соответственно».

Я уже выполнил сброс до последней фиксации (git reset --hard c15...e30), но сообщение о статусе остается неизменным.

Как вернуть мой репозиторий в состояние, было до того, как я начал беспорядок? И в чем разница между текущим состоянием и предыдущим?

Спасибо.

+1

Что сообщение статуса git как ваша текущая ветка (первая строка вывода)? Кроме того, для справки, каковы соответствующие хеши фиксации для origin/master, yourbranch и где вы сейчас (вверху «git log»)? Используйте gitk - все, чтобы дать вам лучшую картинку, если вам это нужно. –

ответ

1

git rebase --abort должен был вернуть вас к исходному ГОЛОВУ. Я не уверен, что вы подразумеваете под «исправлением нескольких конфликтов слияния с использованием ... abort». Вы имели в виду --continue?

В любом случае, теперь вам нужно обратиться к рефлогу. Логлог - это локальный временной журнал, где все ваши ссылки были. Если вы посмотрите на .git/logs/HEAD, вы увидите, где находится HEAD (рабочий набор). Под номером .git/logs/refs/... вы можете видеть, где были все ваши филиалы (локальные и удаленные). Каждая строка в журнале отражает некоторые действия. Начальный SHA, окончание, пользователь, время и строка, описывающая, какое действие вызвало изменение. Вы можете найти тот, который хотите, и обратно reset.

Смежные вопросы