Есть ли способ переименовать ветку Git локально и отправить ее в удаленную ветку, даже если в удаленную ветку уже отправлено много коммитов?

Или необходимо создать новую локальную ветвь, удалить старую локальную ветку, а затем повторить операцию в удаленном репозитории?

Rémi Becheras

Ответов: 1

Ответы (1)

Да,

существует функция move для локального переименования ветки

git branch --move  

но чтобы протолкнуть его, вы должны удалить старую и протолкнуть новую

git checkout 
git push origin [--set-upstream] 
git push origin --delete 

- настройка восходящего потока не является обязательной, она настраивает новую локальную ветвь для отслеживания отправляемой

Вы можете использовать следующие сокращения:

  • перемещать локально (--move):

     git branch -m <старое_имя> <новое_имя>
    
  • нажать новую ветку (--set-upstream, необязательно):

     git push origin [-u] <новое_имя>
    
  • удалить (--delete):

     git push origin -d <старое_имя>
    

Примечание.

Благодаря комментарию Торека:

Стоит, кстати, отметить, что вам следует

  1. уведомить других пользователей, которые делятся апстримом, что вы будете это делать, и
  2. сделайте это в указанном порядке (установите новое имя, затем удалите старое).

Причина №1 в том, что этим пользователям нужно будет приспособиться.

Причина №2 в основном заключается в эффективности: он позволяет избежать повторного копирования объектов в вышестоящее репо, которое отбрасывает коммиты при удалении ветки (большинство голых репозиториев делают это, и большинство репозиториев, которые принимают push-запросы, голые)

2022 WebDevInsider