Pytanie Jak zmienić nazwę lokalnego oddziału Git?


Nie chcę zmieniać nazwy zdalnego oddziału, jak opisano w Zmień nazwę gałęzi głównej dla lokalnych i zdalnych repozytoriów Git.

Jak zmienić nazwę lokalnego oddziału, który nie został przekazany do oddziału zdalnego?


6714
2017-07-06 03:20


pochodzenie




Odpowiedzi:


Jeśli chcesz zmienić nazwę oddziału, wskazując dowolny oddział, wykonaj następujące czynności:

git branch -m <oldname> <newname>

Jeśli chcesz zmienić nazwę bieżącej gałęzi, możesz:

git branch -m <newname>

Sposobem na zapamiętanie tego jest -m jest dla "ruchu" (lub mv), w ten sposób zmienia się nazwy plików.


10700
2017-07-06 03:21



To, co naprawdę chciałem wiedzieć, to czy będzie to miało wpływ na zdalny oddział, kiedy / jeśli będziesz naciskać - PandaWood
@PandaWood: doda nowy oddział po naciśnięciu, ale nie usunie starego oddziału. Jeśli użyjesz git push -f --mirror, wtedy zmieni nazwę gałęzi na pilocie, ale powinieneś używać tej metody tylko wtedy, gdy pilot jest po prostu kopią twojego obecnego repozytorium. Zobacz także to pytanie: stackoverflow.com/questions/1526794/git-rename-remote-branch - siride
@PandaWood, to zależy od tego, jak push.default jest skonfigurowany. Domyślnie (matching) popchnie do pilota, którego nazwa pasuje. Musiałbyś to zrobić git push origin <newname>:<oldname> lub utworzysz nowy zdalny oddział. Jeśli jednak push.default jest ustawione na upstream, wtedy możesz push origin head i rzeczy pójdą na oldname na pilocie. - Erin Stanfill
@ NightOwl888: -m prawdopodobnie jest skrótem od "move", zgodnie z konwencją Unix używania mv zmienić nazwy plików. Powodem tego jest to, że przenoszenie i zmiana nazwy w systemie plików i-węzłów katalogowych są całkowicie równoważne. - siride
Długa nazwa -m opcja jest --movenp. git branch --move master zmienia nazwę bieżącej gałęzi na "master". - robenk


git branch -m old_branch_name new_branch_name

Powyższe polecenie zmieni nazwę twojego oddziału, ale musisz być bardzo ostrożny przy użyciu gałęzi o zmienionej nazwie, ponieważ nadal będzie ona odnosić się do poprzedniej gałęzi powiązanej z nią, jeśli taka istnieje.

Jeśli chcesz przesłać niektóre zmiany do wzorca po zmianie nazwy lokalnego oddziału na new_branch_name (przykładowa nazwa):

git push origin new_branch_name:master (teraz zmiany przejdą do gałęzi głównej, ale nazwa lokalnego oddziału to nowa_nazwa_branży)

Aby uzyskać więcej informacji zobacz "Jak zmienić nazwę lokalnego oddziału w Git. "


351
2018-01-21 09:49





Aby zmienić nazwę bieżącej gałęzi:

git branch -m <newname>

247
2018-06-20 15:05



Będziesz musiał użyć opcji -M, aby zmienić nazwę, jeśli zmieniasz tylko wielkość liter, ponieważ git powie ci, że gałąź już istnieje. - cjspurgeon
Uratowałeś mnie tym komentarzem. - jpadilladev
@cjspurgeon Git zachowuje się niesamowicie, będąc tak intuicyjnym, w nieoczekiwanym stopniu. Od lat. - 0xc0de


Oto kroki, aby zmienić nazwę oddziału:

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>

EDYCJA (12.01.2017): Upewnij się, że uruchomiłeś polecenie git status i sprawdź, czy nowo utworzony oddział wskazuje na własny ref, a nie starszy. Jeśli znajdziesz odniesienie do starszego oddziału, musisz wyłączyć transmisję, używając:

git branch --unset-upstream

186
2018-04-15 12:50



Na którym etapie ktoś zboczył z ruchu? Przed krokiem 4? - Cyclonecode
@Ckllonecode: tak. po kroku 4. Ale upewnij się, że uruchomiłeś status git, aby sprawdzić, czy ma odniesienie do starego oddziału. - Milind Anantwar


Zmień nazwę oddziału będzie przydatna po zakończeniu oddziału. Nadchodzą nowe rzeczy i chcesz rozwijać się w tej samej gałęzi, zamiast usuwać ją i tworzyć nową.

Z własnego doświadczenia, aby zmienić nazwę lokalnego i zdalnego oddziału w Git, powinieneś wykonać następujące kroki.

Cytując z Wiele stanów - Zmień nazwę lokalnego i zdalnego oddziału w   git

1. Zmień nazwę lokalnego oddziału

Jeśli jesteś w oddziale, którego nazwę chcesz zmienić:

git branch -m new-name

Jeśli jesteś w innej branży:

git branch -m old-name new-name

2. Usuń starą nazwę zdalnej gałęzi i naciśnij nową gałąź lokalną

git push origin :old-name new-name

3. Zresetuj gałąź źródłową dla nowego oddziału lokalnego

git push origin -u new-name

124
2017-10-14 03:22



Ten pracował dla mnie lepiej. Tutaj 2 kroki dały mi następujące błędy: error: dst ref refs/heads/<old-name> receives from more than one src.; error: failed to push some refs to 'git@uri:foo/bar.git' - Anto
Wystąpił problem podczas uruchamiania polecenia git push origin :old-name new-name dobrze? - trungk18
Tak dokładnie (przykro mi chodziło o "drugi krok", a nie "2 kroki" - zmęczony) - Anto


Dotychczasowe odpowiedzi są poprawne, ale oto kilka dodatkowych informacji: Można zmienić nazwę gałęzi za pomocą "-m" (move), ale trzeba być ostrożnym, ponieważ "-M" wymusza zmianę nazwy, nawet jeśli istnieje już gałąź o tej samej nazwie. Oto fragment strony man 'git-branch':

Z opcją -m lub -M, <oldbranch> zostanie zmieniona na <newbranch>. Gdyby <oldbranch> miał odpowiedni reflog, zmieniono jego nazwę na dopasowaną <newbranch>i tworzony jest wpis reflog, aby zapamiętać zmianę nazwy gałęzi. Gdyby <newbranch> istnieje, -M musi być użyty, aby wymusić zmianę nazwy.


83
2017-09-24 13:21



Co dzieje się z nadpisaną gałęzią? - Kevin Dice
Zastępuje go nowa nazwa / gałąź. Na przykład, jeśli w git masz następujące gałęzie: master b1 <- obecna gałąź b2 po wykonaniu 'git branch -M b2' będziesz mieć tylko: master b2 <- obecna gałąź b1 zniknie i jeśli chcesz odzyskaj go, powinieneś sprawdzić go poprzez jego skrót. Możesz go zobaczyć, wpisując "git reflog". Twoje zdrowie. - Vanchev
The -M Flaga jest również użyteczna, aby wymusić zmianę nazwy, jeśli właśnie korygujesz przypadek nazwy oddziału, np. wymiana pieniędzy myBranch do MyBranch. (Z -m, git wraca fatal: A branch named 'MyBranch' already exists.) - Jon Schneider


1. Zmień nazwę

Jeśli to twoja obecna gałąź, po prostu rób

git branch -m new_name

Jeśli jest to inna gałąź, którą chcesz zmienić

git branch -m old_name new_name

2. Śledź nowy zdalny oddział

- Jeśli twój oddział został wypchnięty, po zmianie jego nazwy musisz usunąć go ze zdalnego repozytorium Git i poprosić nowy lokalny, aby śledził nowy zdalny oddział:

git push origin :old_name
git push --set-upstream origin new_name

68
2017-12-17 13:45





Głupio nazwałam gałąź zaczynającą się od łącznika, a następnie sprawdzoną mistrzynią. Nie chciałem kasować moja gałąź, miałem w tym pracę.

Żadne z nich nie działało:

git checkout -dumb-name

git checkout -- -dumb-name

"s, 's i \s też nie pomogło. git branch -m nie działa.

Oto jak to naprawiłem. Przejdź do swojej kopii roboczej .git / refs / heads, znajdź nazwę pliku "-dumb-name", uzyskaj skrót nazwy oddziału. To sprawdzi to, utwórz nową gałąź o zdrowej nazwie i usunie starą.

git checkout {hash}
git checkout -b brilliant-name
git branch -d -- -dumb-name

58
2017-11-09 07:31



Nie mogłeś zmienić nazwy pliku w refs / heads? - android.weasel
Tak samo. Jeśli musisz zagłębić się w strukturę katalogów, aby wykonać tę magię, przejdź całą drogę i wykonaj "mv - -deb-name genialny-name" Zrób "gałąź git -av", a zobaczysz strukturę katalogów .git / refs. A może "grep -R ^ .git / refs", aby zobaczyć skróty bezpośrednio. - Dave X
Prawdopodobnie mógłbyś użyć reflog - Code Whisperer
Szczerze mówiąc, gdyby to była trasa, którą chciałeś wziąć, uniknąłbym (IMO zagmatwanego i potencjalnie niebezpiecznego, jeśli nie wiesz, co robisz), przerzuć się przez katalog .git w pierwszej kolejności, i po prostu zrób to z niektórymi normalne polecenia z "analizą git log" (przy użyciu odpowiednich flag, aby pokazać gałęzie, i aby dowiedzieć się, który shasum chcesz sprawdzić nową gałąź od), a następnie zrobić to. Następnie usuń gałąź o wdzięcznej nazwie. ja gardzić ten git nalega, że ​​musisz zrozumieć wszystkie jego wewnętrzne działania, aby zrobić pewne rzeczy, ale bardzo doceniam to mogą rób te rzeczy. - Jon V
Trudniej jest utworzyć oddział o złej nazwie w wersji 2.10.1. Jeśli w jakiś sposób to zrobisz, możesz użyć git-v, aby uzyskać krótką wersję skrótu gałęzi (add -r for remote). Możesz wtedy użyć git rev-pars <shorthash>, aby uzyskać pełny skrót, jeśli go potrzebujesz. - House of Dexter


Aby zmienić nazwę oddziału lokalnie:

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

Teraz będziesz musiał również propagować te zmiany na swoim zdalnym serwerze.

Aby przesłać zmiany usuniętego starego oddziału:

git push origin :[old-branch]

Aby przesunąć zmiany w tworzeniu nowego oddziału:

git push origin [new-branch]

55
2017-08-20 06:39





Zmień nazwę gałęzi za pomocą tego polecenia:

git branch -m [old_branch_name] [new_branch_name]

-m: Zmienia nazwę / przesuwa gałąź. Jeśli istnieje już oddział, pojawi się błąd.

Jeśli istnieje już oddział i chcesz zmienić nazwę w tej gałęzi, użyj:

 git rename -M [old_branch_name] [new_branch_name]

Aby uzyskać więcej informacji na temat pomocy, użyj tego polecenia w terminalu:

git branch --help

lub

man git branch

28
2018-04-11 06:19





Zaawansowani użytkownicy Git mogą zmieniać nazwę ręcznie:

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

26
2017-08-05 09:04