2017-02-21 41 views
0

Ok,Git Undo слияния, которые удалены неподтвержденные изменения

поэтому вся точка управления версиями, чтобы отслеживать изменения, чтобы спутать взлеты и делецию или плохих пути функции может быть устранен - ​​однако мы должны сделать это.

Git для этого удивительный. Но недавно что-то случилось, что ударило меня в голову.

У меня есть мастер, разработка и фаза3 ветвей. Мастер и разработка - это отдаленные филиалы, где Phase3 является локальным. В последнее время разработка была разветвленной для подразделения Release для тестирования. Позднее эта ветка была объединена с мастером, когда наш выпуск вышел на производство.
Я сижу здесь, осознавая, что мне нужно объединить мастера в развитие, чтобы сохранить историю фиксации, и отметил, что Phase3 должен, вероятно, также иметь самую последнюю ветвь.
Это место, где все отправилось на юг. Я пошел объединить мастера в Phase3, и он уничтожил ВСЕ мои текущие изменения.
Он не запрашивал запрос на слияние. Он даже не сказал: «Возможно, вы захотите совершить или занести свои изменения в текущие документы». Он просто переписал их !!!!

Я имею в виду, что я не могу даже проверить альтернативные ветви репозитория без Git, предупреждающий меня о возможной потере данных, но слияние может просто перезаписать эти изменения с помощью nary hint? WTF?

A) есть ли способ рассказать хранилище для UNDO? (маловероятно) B) есть ли способ сказать GIT, чтобы НИКОГДА не сливались при активных изменениях? В принципе, чтобы получить такое же предупреждение о слиянии git, когда я получаю git checkout.

Благодаря Jaeden "Сайфо Диаса" al'Raec Ruiner

+1

Невозможно воспроизвести; Я получаю точное предупреждение, которое вы упоминаете («Ваши локальные изменения в следующих файлах будут перезаписаны с помощью merge: ...») –

ответ

0

Вам нужно git reflog.

Посмотрите на вывод git reflog очень осторожно. Определите состояние, в котором вы были, до того, как вы запустили слияние/rebase/что угодно. Затем выполните a

git reset --hard [email protected]{WHATEVER NUMBER FIND FROM THE REFLOG} 
+1

Лучше 'git branch save-my-work HEAD @ {WHATEVER NUMBER FIND FROM REFLOG}' перед случайным нанося больше вреда. – mkrieger1

+0

@ mkrieger1 хороший совет, но не обязательно, потому что вы всегда можете снова использовать reflog, чтобы вернуться туда, где вы были :) – ffledgling