2015-03-27 4 views
1

Я испортил много кода с git merge, а также потерял работу в этом процессе.Как удалить удаленный git commit HEAD?

Я в этой ситуации:

  • совершить A - я вытащил это из удаленного первого и объединены.
  • совершить B - я толкнула слито совершить ..
  • совершить C - я до сих пор некоторые слияния конфликтов, поэтому я снова слился и толкнул.

Теперь пульт дистанционного управления содержит фиксацию C как HEAD. Это совершенно неверно, и я тоже потерял свой код. Единственный способ решить эту проблему - это удалить фиксацию B и C. Вернитесь к фиксации A и повторите эту работу.

Пожалуйста, дайте мне знать, существует ли безопасный способ удалить фиксацию B и C, не нарушая другие коммиты? Предлагайте другое решение, если это возможно.

Спасибо ..

ответ

0

Я нашел решение от этого:

http://lrotherfield.com/blog/delete-remote-git-repo-to-specific-commit/

Шаг 1: Для сброса головки локально, (рассмотрим в качестве идентификатора фиксации)

мерзавец сброса --hard A

ШАГ 2: для возврата головки в пульт дистанционного управления

git push -f origin A: ведущий

Закончено ..

Теперь мой совершающее B и C будут удалены из отдаленных и точек головы до А.

0

вы можете оформить совершить, создать новую ветвь из него, а затем нажмите на эту ветку и использовать его в будущем.

В принципе, сделать:

  • git checkout A Вы будете в отдельном государстве прямо сейчас
  • git checkout -b new_branch Убедитесь, что все ваши изменения есть по мере необходимости
  • git push origin new_branch

Теперь вы можете продолжить работая над этой новостью.

В случае, если необходимо перезаписать сам старую ветку, у вас есть два варианта

  • Либо сила толкать ветвь на последнем шаге выше, с использованием
    • git push origin new_branch:old_branch_on_origin
  • Или сбросить Головка на ветке локально и принудительно надавите на нее
    • git checkout old_branch
    • git reset HEAD --hard A
    • git push origin -f old_branch

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

+0

Я не могу сбросить ГОЛОВУ совершить, я получаю сообщение об ошибке .. Не удается сделать жесткий сброс с paths –

+0

Можете ли вы проверить фиксацию, как указано в первом подходе? попробуйте, и дайте мне знать полную ошибку в любом случае –

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