Как оформить заказ на старом коммите и отправить его на текущую ветку? - PullRequest
0 голосов
/ 22 мая 2018

У меня есть неверный commit/push в моей ветви, затем я хочу вернуться к старому правильному коммиту и нажать на текущую ветку .

У меня проблема с:

git log
    new: xxxxxxx
    ...
    old: ac758a3

git checkout ac758a3
git commit -m 'revert to old branch (ac758a3) for push it on current branch'

Out:

HEAD detached at ac758a3
nothing to commit, working directory clean

[ EDIT ]

Схематично:

  • A (правильный коммит, который я хочу) --- B (неправильный коммит) --- C (неправильный коммит)

Итак, я хочу следующеепоток:

  • A --- B --- C --- A

Я хочу вернуться к A (старый коммит) и нажатьэто на текущей ветке (та же ветка).

Что такое быстрое решение?


Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

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

Вы можете отменить серию коммитов, используя git revert

%git revert --no-edit  SHA1..SHA2

Это будет применять патчи в обратной последовательности и отменять изменения.Пожалуйста, обратитесь к документации git revert для получения дополнительной информации.

0 голосов
/ 22 мая 2018

git reset --hard <commit-id> ваш друг дорогой.

Выполните следующие шаги:

  1. В текущей команде запуска ветки: git log
  2. Скопируйте правильный идентификатор фиксации из журнала, в который вы хотите вернуться.
  3. Выполните команду: git reset --hard <commit-id-copied-in-step-2 above>
  4. Переведите вашу ветку в удаленное состояние: git push origin <my-feature-branch> -f.

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

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