Итак, у меня было две ветки на github - мастер & рефакторинг. Я проверил рефакторинг на месте и отправился в город. В какой-то момент я прищурился и сделал git push origin master
вместо того, чтобы нажимать на источник рефакторинга, и, кроме того, не заметил вопроса до двух недель спустя после принятия дальнейших действительных изменений в мастер.Git revert winup - восстановление?
/меня facepalms
Пытаться не-Борк вещей, я проверил мастер локально, и сделал git revert <some tag>
, которое фиксировало мастер, удалив различные файлы, которые я добавил, и так далее. Счастливый конец! Оттолкнутый хозяину происхождения, все было хорошо. Умел работать над моей локальной рефакторинговой ветвью, иногда отбрасывая регенератор.
Сегодня я закончил с первым проходом моего рефакторинга и хочу подтолкнуть свои изменения к мастеру. I git add
, git commit
, git push origin refactor
. Все хорошо. Затем я пытаюсь нажать на начальника. Потерпеть неудачу! Неудивительно, что требуется ручное слияние из-за махинаций, верно? Итак, я git pull origin master
в моей местной ветке рефакторинга ... и все щеки разрываются. Все мои новые файлы удалены, конфликты повсюду.
I думаю, что происходит, это то, что этот обратный толчок пытается применить, и противоречит моим совершенно счастливым изменениям, которые должны чисто применяться на вершине мастера, если только.
Итак, поскольку я все еще git newb, любые предложения о том, как спасти мою хромоту? Бонусные баллы, если вы можете дать общее руководство/образование о том, как избежать этого класса ошибок в моем будущем рабочем процессе. Благодаря!
Спасибо @Chronial, даст этот снимок завтра, когда я вернусь к работе. Спасибо за указатель на push.default, там будут некоторые чтения. –
Это сделало трюк. Кроме того, для людей, которые находят это в будущем, http://code.google.com/p/git-core/source/browse/Documentation/howto/revert-a-faulty-merge.txt хорошо читает Linus on субъект. –