Змінення назви філії в Git repo


294

Як я перейменую існуючу гілку в Git repo?

Я хочу, щоб поточна філія мала нову назву.


2
прийміть відповідь @Alex або скажіть, чому ви не хочете її прийняти.
Чарлі Паркер

1
@CharlieParker Це певно пов'язане з тим, що це питання Алекса, і він, мабуть, не ввійшов з цього часу: "Востаннє бачив 3 лютого '11 о 21:29"
yellow-saint

13
@JB OMG, ти кажеш, що з ним щось могло трапитися ??? !!!!!!!!!
абат

1
Чи може бути прийнята відповідь на це голосом?
Стів Чемберс

Відповіді:


465

Якщо припустити, що ви зараз перебуваєте у відділенні, яке потрібно перейменувати:

git branch -m newname

Це задокументовано в посібнику для git-branch, який ви можете переглянути

man git-branch

або

git help branch

Зокрема, команда є

git branch (-m | -M) [<oldbranch>] <newbranch>

де параметри:

   <oldbranch>
       The name of an existing branch to rename.

   <newbranch>
       The new name for an existing branch. The same restrictions as for <branchname> apply.

<oldbranch> необов’язково, якщо ви хочете перейменувати поточну гілку.


10
Або git branch -m other-branch renamed-other-branchякщо ви цього не зробите.
mipadi

32
Крім того, якщо ви перенесли стару гілку на пульт, її можна видалити за допомогою git push origin :branchname. Це дозволить вам натиснути нову та видалити стару, по суті перейменувавши її на пульт.
Джонатан

1
@mipadi, він створює нову гілку і не видаляє попередню.
Мохаммед Аріф

git гілка (-m | -M) [<oldbranch>] <newbranch> Не працювала для мене, даючи синтаксичну помилку.
Мохаммед Аріф

@MohammedArif З -m, він перейменовує стару гілку, так само видалити попередню.
Річард Фірн

176

Якщо ви зараз перебуваєте у відділенні, ви хочете перейменувати:

git branch -m new_name 

Інакше:

git branch -m old_name new_name 

Ви можете перевірити:

git branch -a

Як бачимо, зараз змінилася лише локальна назва, щоб змінити ім'я також у пульті, потрібно зробити:

git push origin :old_name

При цьому видаляється гілка, а потім завантажується її з новою назвою:

git push origin new_name

Джерело: https://web.archive.org/web/20150929104013/http://blog.changecong.com:80/2012/10/rename-a-remote-branch-on-github


13
Я думаю, що це правильна відповідь, відповідь Річарда Фіма охоплює лише місцеві репо, ця стосується віддалених.
користувач1145404

4
Погодившись з коментарем вище, у моєму випадку ця відповідь була більш повною. Крім того, коли я натиснув додаткові комісії на віддалену гілку, виконавши всі кроки, згадані у цій відповіді, git спробував знову перейти до old_nameгілки. До щастя, мерзотник також поставляється лагодження в командному рядку: git-branch --unset-upstream. Після цього всі натиснуті комітети пішли у new_nameвіддалену гілку.
Ганс Рердінкхолдер

2
майте на увазі, що таким чином ви втратили здатність працювати, git pushтому що ви отримуєте попередження, яке говорить Your branch is based on 'old_name, but the upstream is gone.: " git push -u origin new_nameВирішіть це".
netalex
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.