Хотя я довольно экспериментировал с ребазой CLI, я никогда не понимал, как использовать опцию ребазирования IntelliJ ^^
Из того, что я понимаю, у вас есть следующие настройки:
github/master
v
A-B-C---D-E
\
\-F-G
^
personal,
github/personal
У вас тоже должна быть ветка master
(локальный мастер). Если вы не уверены в этой настройке, пожалуйста, предоставьте нам вывод следующей команды:
git log --oneline --decorate --graph local_personal_branch github_personal_branch master github_master_branch
Вам нужно переместить вашу личную ветку на master, чтобы получить следующий график:
github/master
v
A-B-C---D---E---F'---G'
^
personal
github/personal
Итак, команда:
git rebase --onto github/master C personal
git push --force
Чтобы объяснить это:
- вы хотите, чтобы коммиты между коммитом
C
и personal
были помещены натекущая ветка github/master
. - вы отправляете новую личную ветку в github. Поскольку перебазирование не создает линейную историю (некоторые предыдущие персональные коммиты (F, G) теряются и заменяются новыми «идентичными» коммитами (F 'и G')), вам необходимо принудительно нажать толчок.
Для справки, ваш удаленный репозиторий, вероятно, называется origin
, а не github
(см. Вывод git remote -v
), поэтому вам следует заменить ссылку на github
на origin
в предыдущем коммите. Буква C
должна быть заменена номером хэша последнего общего коммита между master
и personal
.
Kind.