Как отменить изменения, которые уже отправлены на удаленный? - PullRequest
1 голос
/ 05 марта 2012

Я нашел пару похожих вопросов и ответов, но они касаются только локальных коммитов (и иногда в ответах говорится, что не делайте этого после обмена изменениями).

У меня есть следующее:

A-B-C-D-E (HEAD)
        ↑
      master = origin/master

Я хочу вот что:

    someBranch
        ↓
    C-D-E (HEAD)
   /
A-B-F
    ↑
master = origin/master

Где F может быть коммитом, говорящим, что мастер был сброшен там.В основном я хочу отменить изменения в C, D и E., но мне все равно, сброс виден в хранилище.

Если это невозможно, каковы мои ближайшие альтернативы?

Редактировать: Для ясности: я не единственный, кто работает над проектом.

Ответы [ 2 ]

1 голос
/ 05 марта 2012

Очень жестоким решением было бы

git branch someBranch
git reset --hard HEAD~3
git push --force

Это может быть приемлемо, если вы знаете, что никто не тянул ветку с тех пор, как вы нажали, например, если вы единственный, кто работает над этим проектом.В противном случае вы, вероятно, столкнетесь с проблемами.

0 голосов
/ 05 марта 2012

Вы можете просто сделать git revert для всех этих коммитов, а затем просто нажать вверх по течению.Он вернет все эти коммиты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...