Работая с git, после некоторой фиксации и пары нажатий я понял, что использую не ту ветку!
Теперь мне нужно каким-то образом удалить мои изменения в неправильной_бранке и зафиксировать и нажать изменения в right_branch
Какой лучший (и простой) способ сделать это?
Спасибо
Ответы:
переключитесь на эту ветку, проверьте
git log
иgit revert
те коммиты по отдельности. Как только вы это сделаете, переключитесь обратно на нужную ветку, и там вы сможетеgit cherry-pick
выбрать определенные коммиты из git refs и объединить их в правую ветку.Если коммиты сгруппированы вместе, и после ваших грязных коммитов не было никаких коммитов, вы даже можете использовать
git reset
эту неправильную ветку в состояние непосредственно перед вашими коммитами, а затем следовать за этим снова, используя,git cherry-pick
чтобы ваши коммиты в правильную ветку.источник
git cherry-pick commitsha1 commitsha2
.revert
намного чище и менее драматично, чемreset
если вы действительно не хотите удалить что-то конфиденциальное (учетные данные?)Самый простой способ - использовать
git rebase
. Предположим, у вас есть такая настройка:Вы хотите переместить смену C3, C4 в правую ветку.
Теперь настройка
Затем вам нужно принудительно подтолкнуть свои результаты (ЕСЛИ никто еще не синхронизировался с вашим удаленным репо):
источник
git push -f
, лучшее использованиеgit push --force-with-lease
. По крайней мере, это гарантирует, что удаленная ссылка будет обновляться только в том случае, если никто не нажимал другие коммиты поверх ваших коммитов.Небольшой ярлык, добавляющий к ответу Дхрувы
источник