Подтвердить что ты не робот

Повторное воспроизведение последнего N git выполняется на другой ветке

Я случайно сделал 10 коммитов на ветке "тестирование", когда я намеревался передать их на ветке "master". Другой фиксатор на ветке "тестирование" - это мусор, поэтому я не хочу объединять его с "мастером". Вместо этого я просто хочу воспроизвести последние 10 коммитов на главном сервере.

4b9b3361

Ответ 1

  • git мастер проверки
  • git тесное тестирование
  • git cherry-pick _________

?

Ответ 2

Rebase должен это сделать.

git rebase -p --onto master testing~10 testing

Это скопирует последние десять коммитов на тестирование, чтобы освоить и сделать это новое тестирование (старое тестирование будет сиротой). Затем вы можете объединить мастер для тестирования в качестве быстрой перемотки вперед.

git checkout master
git merge testing

Ответ 3

Как сказано в комментариях, в ответном ответе rebase оставлен "мусор" означает сиротство.

Просто используйте простые инструменты:

git checkout master
git merge testing
git checkout testing
git reset --hard HEAD~10   # Go back 10 commits (*1)
git checkout master

(* 1) Вы будете только "потерять" фиксации из ветки testing, так как у вас будут те коммиты в master благодаря merge.