2014-01-13 6 views
1

Я понимаю git rebase. И я тоже понимаю git reflog и git reset --hard. Но SO answers и blog posts Я пробовал, похоже, не помогает мне исправить эту ошибку, которую я сделал.Исправление неудачной `git rebase`

Я работаю над изменением команды Marionette. Я делал то, что я обычно делаю, раздавливая свои коммиты в один, когда в какой-то момент заметил, что на самом деле я как-то «прикрепил» кучу коммитов to my PR. Это now lists 6 commits, и мой последний из них отделен от других.

Я не уверен, что это похоже на раздачу, когда вы сквош комментируете несколько пользователей, поэтому мой первый вопрос: что здесь происходит? Были ли они случайно раздавлены?

Второй вопрос: как я могу это исправить? Я ничего не делаю, кажется, работает. I git reset --hard до того, как я сделал какие-либо перестановки, и он все еще показывает, что эти 6 коммитов как разблокированные коммиты. Даже если я reset --hardполностью до того, как я клонировал репо, он по-прежнему перечисляет другие коммиты.

Что здесь происходит? У вас есть идеи о том, как я могу это исправить?

ответ

0

И вот ответ (кредиты идут на cobbweb):

  1. Hard сбросить хранилище полностью
    git reset --hard origin/master

    Что это делает обновление вашего хранилища, чтобы быть в том же состоянии, что и пульт дистанционного управления репозиторий. Он также установит все коммиты (оба из которых вы хотите & те, которые вы не хотите), поскольку unpushed совершается в местном филиале. Здесь вы хотите быть.

  2. Выберите только коммит, который вы хотите
    git cherry-pick {{ SHA }}

    где {{SHA}} является совершение ID для этой вещи. Он будет выглядеть примерно так: 344dc098ffle90aaef3.

  3. Принудительное движение, и вы должны быть добрым.
    git push --force

Если вы хотите узнать больше о том, что происходит здесь запустить Google/SO поиска по каждому из вещей, которые мы сделали здесь: сбрасывающее, вишневую отборки и сила, толкающим , Вы найдете много информации о них.

Примечание: Эта проблема и решения участвовать работает над только мастером ветви. Все может быть немного иначе, если вы имеете дело с ситуацией с несколькими ветвями.

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