Нет ничего плохого в том, чтобы нажать на ту же ветку, с которой вы перебазируете. Эти диаграммы должны иллюстрировать, почему это работает нормально:
Допустим, именно так выглядит граф коммитов после того, как вы разветвили local_branch и сделали пару коммитов в него (C и D). Кто-то еще сделал один коммит (E) для origin / master, так как вы разветвили local_branch:
A -- B -- E [origin/master]
\
\
\-- C -- D [local_branch]
Затем после запуска «git rebase origin / master» график коммитов будет выглядеть как следующая диаграмма. «origin / master» остается прежним, но «local_branch» был перебазирован:
A -- B -- E [origin/master]
\
\
\-- C -- D [local_branch]
На этом этапе, если вы выполните «git push origin local_branch: master», то это приведет к простой перемотке вперед. «origin / master» и «local_branch» будут идентичны:
A -- B -- E -- C -- D [origin/master],[local_branch]
Теперь вы можете выполнять больше работы над "local_branch". В конце концов вы можете получить что-то вроде этого:
A -- B -- E -- C -- D -- G -- I [origin/master]
\
\
\-- F -- H [local_branch]
Обратите внимание, это очень похоже на начальный график. Вы можете повторять этот процесс снова и снова.
Вы должны избегать нажатия на какую-то другую ветку, ту, от которой вы не отказываетесь. Именно здесь вы столкнетесь с проблемами (в другой ветке это будет выглядеть так, как будто история вашего local_branch внезапно была переписана после того, как вы отказались от «origin / master»).