Як перейменувати локальну гілка Git?

Я не хочу перейменовувати віддалену гілку, як описано в Перейменувати головну гілку для локальних і віддалених репозиторіїв Git.

Як перейменувати локальну гілка, яка не була натиснута на віддалену гілку?

5839
06 июля '11 в 6:20 2011-07-06 06:20 заданий Forrest 06 липня '11 о 6:20 2011-07-06 6:20
@ 24 відповідей

Якщо ви хочете перейменувати гілку, вказавши її на будь-яку гілку, виконайте наступні дії:

 git branch -m <oldname> <newname> 

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

 git branch -m <newname> 

Способом запам'ятати це, -m для "move" (або mv ), тобто як ви перейменовуєте файли.

9202
06 июля '11 в 6:21 2011-07-06 06:21 відповідь дан siride 06 липня '11 о 6:21 2011-07-06 6:21
 git branch -m old_branch_name new_branch_name 

Вищевказана команда змінить ваше назва гілки, але ви повинні бути дуже обережні з допомогою перейменованої гілки, тому що вона все одно буде посилатися на пов'язану з нею гілку висхідного потоку, якщо вона є.

Якщо ви хочете перемістити деякі зміни в майстер після того, як локальна гілка перейменована в new_branch_name (ім'я прикладу):

border=0

git push origin new_branch_name:master (тепер зміни перейдуть на головну гілку, але ваше ім'я локальної гілки - new_branch_name)

Детальніше див. " Як перейменувати ім'я локальної гілки в Git .

303
21 янв. відповідь дан Madhan Ayyasamy 21 Січня. 2013-01-21 12:49 '13 в 12:49 2013-01-21 12:49

Щоб перейменувати поточну гілку:

 git branch -m <newname> 
208
20 июня '13 в 18:05 2013-06-20 18:05 відповідь дан Jonathan 20 червня '13 о 18:05 2013-06-20 18:05

Ось кроки для перейменування гілки:

 1. switch to branch which needs to be renamed 2. git branch -m <new_name> 3. git push origin :<old_name> 4. git push origin <new_name>:refs/heads/<new_name> 

РЕДАКТИРОВАТЬ (12/01/2017): Переконайтеся, що ви запустили команду git status і переконайтеся, що новостворена гілка вказує на свій власний реф, а не на більш старий. Якщо ви знайдете посилання на гілку старше, вам потрібно скасувати висхідний потік, використовуючи:

 git branch --unset-upstream 
148
15 апр. відповідь дан Milind Anantwar 15 Квітня. 2015-04-15 15:50 '15 о 15:50 2015-04-15 15:50

Перейменувати гілка буде корисно після завершення вашої гілки. Потім настає новий матеріал, і ви хочете розвиватися в тій же гілці, а не видаляти її і створювати нову.

З мого досвіду, щоб перейменувати локальну і віддалену гілку в Git, ви повинні зробити наступні кроки.

Цитата з Кілька станів. Перейменуйте локальну і віддалену гілку в git

1. Перейменуйте локальну гілка

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

 git branch -m new-name 

Якщо ви перебуваєте на іншій гілці:

 git branch -m old-name new-name 

2. Видаліть віддалену гілку старого імені і натисніть локальну гілку нового імені

 git push origin :old-name new-name 

3. Reset гілка висхідного потоку для локальної гілки нового імені

 git push origin -u new-name 
84
14 окт. відповідь дан trungk18 14 Жовтня. 2016-10-14 06:22 '16 о 6:22 2016-10-14 6:22

Відповіді досі були правильними, але ось додаткова інформація: Можна перейменувати гілку з "-m" (move), але потрібно бути обережним, тому що "-M" змушує перейменувати, навіть якщо є вже існуюча гілка з тим же ім'ям. Ось витяг з man-сторінки git -branch:

З опцією -m або -M <oldbranch> буде перейменований в <newbranch> . Якщо <oldbranch> має відповідний reflog, він перейменовується в відповідність з <newbranch> , і запис reflog створюється для запам'ятовування перейменування гілок. Якщо <newbranch> існує, -M необхідно використовувати для примусового перейменування.

70
24 сент. відповідь дан Vanchev 24 вересня. 2013-09-24 16:21 '13 о 16:21 2013-09-24 16:21

1. Перейменувати

Якщо це ваша поточна гілка, просто

  git branch -m new_name 

Якщо це ще одна гілка, яку ви хочете перейменувати

  git branch -m old_name new_name 

2. Відслідковувати нову віддалену гілку

. Якщо ваш філія був натиснутий, то після перейменування вам потрібно видалити його з віддаленого сховища Git і попросити новий локальний відстежувати нову віддалену гілку:

  git push origin :old_name git push --set-upstream origin new_name 
56
17 дек. відповідь дан Mohamed Osama 17 дек. 2015-12-17 16:45 '15 о 16:45 2015-12-17 16:45

Я по-дурному назвав гілку, що починається з дефіса, а потім перевірив майстер. Я не хотів, щоб видалити мою гілку, я працював в ній.

Жоден з них не працював:

git checkout -dumb-name

git checkout -- -dumb-name

" S, ' і \ теж не допомогли. git branch -m не працює.

Ось як я, нарешті, його виправив. Зайдіть в свою робочу копію .git / refs / heads, знайдіть ім'я файлу "-dumb-name", отримаєте хеш гілки. Потім це буде перевірено, створіть нову гілку з розумним ім'ям і видаліть старий.

 git checkout {hash} git checkout -b brilliant-name git branch -d -- -dumb-name 
51
09 нояб. відповідь дан Samuel Meacham 09 нояб. 2013-11-09 10:31 '13 о 10:31 2013-11-09 10:31

Щоб перейменувати гілку локально:

 git branch -m [old-branch] [new-branch] 

Тепер вам також доведеться поширювати ці зміни на віддаленому сервері.

Щоб направити змінити віддалену старої гілки:

 git push origin :[old-branch] 

Щоб внести зміни в створення нової гілки:

 git push origin [new-branch] 
48
20 авг. відповідь дан aliasav 20 Серпня. 2015-08-20 09:39 '15 о 9:39 2015-08-20 9:39

Перейменуйте гілку за допомогою цієї команди:

 git branch -m [old_branch_name] [new_branch_name] 

-m : він перейменовує / переміщує гілка. Якщо є гілка, ви отримаєте повідомлення про помилку.

Якщо вже є гілка, і ви хочете перейменувати її з цією гілкою, використовуйте:

  git rename -M [old_branch_name] [new_branch_name] 

Для отримання додаткових відомостей про довідку використовуйте цю команду в терміналі:

 git branch --help 

або

 man git branch 
23
11 апр. відповідь дан Hafiz Shehbaz Ali 11 Квітня. 2015-04-11 09:19 '15 в 9:19 2015-04-11 9:19

Розширені Git користувачі можуть перейменовувати вручну:

 Rename the old branch under .git/refs/heads to the new name Rename the old branch under .git/logs/refs/heads to the new name Update the .git/HEAD to point to yout new branch name 
22
05 авг. відповідь дан Jethik 05 Серпня. 2015-08-05 12:04 '15 о 12:04 2015-08-05 12:04

Ймовірно, як згадувалося іншими, це буде невідповідність в найменуванні гілок.

Якщо у вас є така ситуація, я можу здогадатися, що ви на Windows, яка також призведе вас до:

 $ git branch -m CaseSensitive casesensitive fatal: A branch named 'casesensitive' already exists. 

Потім вам потрібно зробити проміжний крок:

 $ git branch -m temporary $ git branch -m casesensitive 

Нічого більше.

16
25 мая '15 в 14:52 2015-05-25 14:52 відповідь дан P4C 25 травня '15 о 14:52 2015-05-25 14:52

Спроба відповісти конкретно на питання (по крайней мере, заголовок).

Ви також можете перейменувати локальну гілка, але відстежуєте старе ім'я на пульті дистанційного керування.

 git branch -m old_branch new_branch git push --set-upstream origin new_branch:old_branch 

Тепер, коли ви запустите git push , віддалений old_branch ref оновлюється локальним new_branch .

Ви повинні знати і запам'ятовувати цю конфігурацію. Але це може бути корисно, якщо у вас немає вибору для імені віддаленої гілки, але вам це не подобається (о, я маю на увазі, у вас є дуже хороша причина, щоб це не сподобалося!) І віддають перевагу більш чітке ім'я для вашої локальної гілки.

Граючи з конфігурацією вибірки, ви навіть можете перейменувати локальну віддалену посилання. тобто мати покажчик ref refs/remote/origin/new_branch для гілки, тобто насправді old_branch на origin . Проте, я дуже бентежать це, заради безпеки вашого розуму.

14
19 мая '16 в 13:39 2016-05-19 13:39 відповідь дан Pierre-Olivier Vares 19 травня '16 о 13:39 2016-05-19 13:39

Інший варіант - не використовувати командний рядок взагалі. Git Клієнти GUI, такі як SourceTree , віднімають більшу частину синтаксичної кривої навчання / болю, що викликає такі питання, як цей найбільш переглядаються в переповненні стека.

У SourceTree клацніть правою кнопкою миші по будь-якої локальної гілці на панелі "Гілки" зліва і виберіть "Перейменувати ...".

12
08 марта '15 в 19:13 2015-03-08 19:13 відповідь дан Steve Chambers 08 березня '15 о 19:13 2015-03-08 19:13

Ось три кроки: команда, яку ви можете викликати всередині свого терміналу і змінити назву гілки.

 git branch -m old_branch new_branch # Rename branch locally git push origin :old_branch # Delete the old branch git push --set-upstream origin new_branch # Push the new branch, set local branch to track the new remote 

Якщо вам потрібно більше: крок за кроком, Як змінити Git Назва гілки - хороша стаття про це.

12
10 мая '16 в 21:04 2016-05-10 21:04 відповідь дан Hazarapet Tunanyan 10 травня '16 о 21:04 2016-05-10 21:04

Щоб перейменувати поточну гілку (крім окремого стану HEAD), ви також можете використовувати цей псевдонім:

 [alias] mvh = !sh -c 'git branch -m `git rev-parse --abbrev-ref HEAD` $1' 
11
02 сент. відповідь дан dentuzhik 02 сент. 2014-09-02 20:25 '14 о 20:25 2014-09-02 20:25

Оскільки ви не хочете натискати гілка на віддалений сервер, цей приклад буде корисний:

Скажімо, у вас є існуюча гілка, яка називається "my-hot-feature", і ви хочете перейменувати її в "feature-15".

Спочатку ви хочете змінити локальну гілка. Це не може бути простіше:

 git branch -m my-hot-feature feature-15 

Для отримання додаткової інформації ви можете відвідати Локально і віддалено перейменувати гілку в Git .

7
27 окт. відповідь дан Tanah 27 Жовтня. 2015-10-27 13:17 '15 о 13:17 2015-10-27 13:17

Якщо ви хочете використовувати SourceTree (який я настійно рекомендую), ви можете натиснути правою кнопкою миші по своїй гілці і вибрати "Перейменувати".

2019

git версія 2.9.2

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

 git branch -m new_name 

Якщо ви хочете змінити ім'я іншої гілки:

 git branch -m old_name new_name 

Якщо ви хочете змінити ім'я іншої гілки на вже існуюче ім'я:

 git branch -M old_name new_name_that_already_exists 

Примітка. Остання команда є деструктивною і перейменує вашу гілку, але ви втратите стару гілку з цим ім'ям, і вони зафіксують, бо імена гілок повинні бути унікальними.

5
22 сент. відповідь дан nikkypx 22 сент. 2016-09-22 03:03 '16 в 3:03 2016-09-22 3:03

Якщо ви хочете змінити ім'я поточної гілки, запустіть:

 git branch -m [old_branch] [new_branch] 

Якщо ви хочете видалити стару віддалену гілку, запустіть:

 git push origin :[old_branch] 

Якщо ви хочете видалити стару віддалену гілку і створити нову віддалену гілку, запустіть:

 git push origin :old_branch new_branch 
4
31 янв. відповідь дан Arif 31 Січня. 2017-01-31 18:53 '17 о 18:53 2017-01-31 18:53

Зміна гілки локально досить просто! ...

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

 git branch -m my_new_branch 

В іншому випадку, якщо ви перебуваєте на master або будь-який інший гілці, крім тієї, яку хочете змінити, просто виконайте:

 git branch -m my_old_branch my_new_branch 

Крім того, я створюю зображення нижче, щоб показати це в дії в командному рядку , В цьому випадку ви перебуваєте в гілці master , наприклад:

2019

Якщо ви хочете перейменувати git репозиторій -
git branch -m <oldname> <newname>
видалити старий філія by-
git push origin :old-name new-name
Зафіксуйте його за допомогою

git commit <newname>
а потім натисніть, використовуючи git push origin new_branch_name:master
Якщо ви хочете перевірити статус, використовуйте: -
git status
Якщо ви хочете перевірити, то: -
git checkout

0
26 авг. відповідь дан Vineet Jain 26 Серпня. 2017-08-26 17:18 '17 о 17:18 2017-08-26 17:18

Все вищесказане говорить про git branch -m . Звичайно, воно легко працювати, але для мене може бути трохи складно запам'ятати ще одну команду git. Тому я спробував виконати роботу по команді, з якою я був знайомий. Так, ви могли здогадатися.

Я використовую git branch -b <new_branch_name> . І якщо ви не хочете зберігати стару гілку, ви можете виконати git branch -D <old_branch_name> , щоб видалити її.

Я знаю, що це може бути трохи втомлює, але це легше зрозуміти і запам'ятати. Сподіваюся, це корисно для вас.

0
29 авг. відповідь дан Dai Kaixian 29 Серпня. 2017-08-29 05:16 '17 в 5:16 2017-08-29 5:16

git перейменування гілки може бути виконане за допомогою

  • git branch -m oldBranch newBranch

  • git branch -M oldBranch ExistingBranch

Різниця між -m і -M,

-m:, якщо ви намагаєтеся перейменувати свою гілку з висновком імені гілки за допомогою -m це викличе помилку, каже, що гілка вже існує. вам потрібно вказати унікальне ім'я.

але

-M:, це допоможе вам примусово перейменувати з заданим ім'ям, навіть якщо воно існує. тому існуюча гілка повністю перезапише його ...

Ось приклад терміналу git,

 mohideen@dev:~/project/myapp/sunithamakeup$ git branch master master0 new_master test * test1 mohideen@dev:~/project/myapp/sunithamakeup$ git branch -m test1 test fatal: A branch named 'test' already exists. mohideen@dev:~/project/myapp/sunithamakeup$ git branch -M test1 test mohideen@dev:~/project/myapp/sunithamakeup$ git branch master master0 new_master * test mohideen@dev:~/project/myapp/sunithamakeup$ 
0
01 сент. відповідь дан Mohideen ibn Mohammed 01 сент. 2017-09-01 09:59 '17 о 9:59 2017-09-01 9:59

Інші питання по мітках або Задайте питання