2015-04-16 3 views
1

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

+0

как именно вы использовали 'git revert'? – Alik

+0

'git revert ' – zero

+0

Есть много способов сделать это. Вы можете вишней выбрать фиксацию на своей ветке, или вы можете проверить свою ветку и вернуть реверт фиксации. – meagar

ответ

2

Я предлагаю cherry-pick ваш фиксатор на новую ветку (если сброс невозможен).

  1. Запустите git log и скопируйте хэш вашей фиксации, которая еще не была отменена.
  2. git checkout ваша новая отрасль.
  3. Run git cherry-pick <copied-commit-hash>

вы получите совершенно новое обязательство с разными хэш.

Read more about cherry-pick

+0

. Есть ли преимущество в назначении нового хэша? Интересно, потому что этот код в какой-то момент будет объединен обратно в dev (все еще пытаясь понять, как работает git) – zero

+0

Я думаю, что есть. В принципе вам нужно вернуться назад, чтобы история была понятной. Таким образом, это должен быть новый коммит. – peresleguine

+0

После слияния ваши изменения будут выглядеть разумно: commit -> reverted -> commit again. – peresleguine

1

это работало отлично: How do I create a new git branch from an old commit?

просто проверить его в рамках создания нового филиала. это было очень просто.

+0

Недостаток этого подхода: если вы затем объединитесь с dev (в любом направлении), то revert commit будет частью слияния и в лучшем случае даст вам конфликт или, в худшем случае, отменяет эти изменения. Возвращение возврата защитит вас от этого – ComputerDruid

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