Nie chcę zmieniać nazwy gałęzi zdalnej, jak opisano w Zmień nazwę gałęzi głównej dla lokalnych i zdalnych repozytoriów Git .
Jak mogę zmienić nazwę oddziału lokalnego, który nie został przekazany do oddziału zdalnego?
W przypadku potrzeby zmiany nazwy również oddziału zdalnego :
Jak zmienić nazwę zarówno oddziału lokalnego, jak i zdalnego Git?
źródło
git push -f --mirror
, zmieni nazwę gałęzi na pilocie, ale powinieneś użyć tej metody tylko wtedy, gdy pilot ma być kopią bieżącego repozytorium. Zobacz także to pytanie: stackoverflow.com/questions/1526794/git-rename-remote-branchpush.default
konfiguracji. Domyślnie (matching
) przesyła do pilota, którego nazwa pasuje. Musisz to zrobićgit push origin <newname>:<oldname>
lub utworzysz nowy oddział zdalny. Jeśli jednakpush.default
jest ustawiony naupstream
, możeszpush origin head
i wszystko pójdzie do starej nazwy na pilocie.mv
do zmiany nazw plików. Powodem tego jest to, że przenoszenie i zmiana nazwy w systemie plików i-węzłów opartym na katalogu są całkowicie równoważne.-m
opcji to--move
np. Zmianagit branch --move master
nazwy bieżącej gałęzi na „master”.Powyższe polecenie zmieni nazwę gałęzi, ale musisz być bardzo ostrożny, używając gałęzi o zmienionej nazwie, ponieważ nadal będzie ona odnosić się do starej gałęzi powiązanej z nią, jeśli taka istnieje.
Jeśli chcesz wprowadzić zmiany w master po zmianie nazwy oddziału lokalnego na new_branch_name (przykładowa nazwa):
git push origin new_branch_name:master
(teraz zmiany przejdą do oddziału głównego, ale nazwa lokalnego oddziału to nowa_nazwa_gałęzi)Aby uzyskać więcej informacji, zobacz „ Jak zmienić nazwę lokalnej nazwy oddziału w Git ”.
źródło
Aby zmienić nazwę bieżącego oddziału:
źródło
Oto kroki, aby zmienić nazwę oddziału:
git branch -m <new_name>
git push origin :<old_name>
git push origin <new_name>:refs/heads/<new_name>
EDYCJA (12.01.2017): Upewnij się, że uruchomiłeś komendę
git status
i sprawdź, czy nowo utworzona gałąź wskazuje swój własny ref, a nie starszy. Jeśli znajdziesz odniesienie do starszej gałęzi, musisz rozbroić upstream, używając:źródło
Zmień nazwę gałęzi, będzie przydatna po zakończeniu gałęzi. Potem nadchodzą nowe rzeczy i chcesz rozwijać się w tej samej gałęzi, zamiast ją usuwać i tworzyć nową.
Z mojego doświadczenia wynika, że aby zmienić nazwę lokalnego i zdalnego oddziału w Git, wykonaj następujące czynności.
1. Zmień nazwę swojego lokalnego oddziału
Jeśli jesteś w oddziale, którego nazwę chcesz zmienić:
Jeśli jesteś w innym oddziale:
2. Usuń gałąź zdalną o starej nazwie i wciśnij gałąź lokalną o nowej nazwie
3. Zresetuj gałąź nadrzędną dla gałęzi lokalnej o nowej nazwie
źródło
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'
git push origin :old-name new-name
prawda?Odpowiedzi do tej pory były prawidłowe, ale oto kilka dodatkowych informacji:
Można bezpiecznie zmienić nazwę gałęzi za pomocą „-m” (ruch), ale trzeba uważać na „-M”, ponieważ wymusza zmianę nazwy, nawet jeśli istnieje już gałąź o tej samej nazwie. Oto fragment strony podręcznika „git-branch”:
źródło
-M
Flaga jest również przydatna w celu wymuszenia zmiany nazwy, jeśli tylko sprostowanie sprawę nazwy oddziału, np zmieniamyBranch
sięMyBranch
. (Z-m
git powracafatal: A branch named 'MyBranch' already exists.
)1. Zmień nazwę
Jeśli to twoja obecna gałąź, po prostu zrób
Jeśli jest to inna gałąź, której nazwę chcesz zmienić
2. Śledź nową zdalną gałąź
- Jeśli twoja gałąź została wypchnięta, to po zmianie nazwy musisz usunąć ją ze zdalnego repozytorium Git i poprosić nowego lokalnego o śledzenie nowej zdalnej gałęzi:
źródło
Głupio nazwałem gałąź zaczynającą się od łącznika, a potem sprawdziłem mistrza. Nie chciałem usuwać mojego oddziału, miałem w nim pracę.
Żaden z nich nie działał:
git checkout -dumb-name
git checkout -- -dumb-name
"
s,'
s i\
s też nie pomogły.git branch -m
nie działaOto jak w końcu to naprawiłem. Przejdź do .git / refs / heads swojej kopii roboczej, znajdź nazwę pliku „-dumb-name”, uzyskaj skrót gałęzi. Następnie to sprawdzi, utworzy nową gałąź o zdrowej nazwie i usunie starą.
źródło
reflog
Aby zmienić nazwę oddziału lokalnie:
Teraz będziesz musiał propagować te zmiany również na zdalnym serwerze.
Aby przekazać zmiany usuniętej starej gałęzi:
Aby przesunąć zmiany w tworzeniu nowego oddziału:
źródło
Tylko trzy kroki do replikacji zmiany nazwy
remote
na GitHub:Krok 1
git branch -m old_branchname new_branchname
Krok 2
git push origin :old_branchname new_branchname
Krok 3
git push --set-upstream origin new_branchname
źródło
git push --set-upstream origin new_branchname
której wspomniano w odpowiedzi naZmień nazwę gałęzi za pomocą tego polecenia:
-m
: Zmienia nazwę / przenosi gałąź. Jeśli istnieje już gałąź, pojawi się błąd.Jeśli istnieje już gałąź i chcesz zmienić nazwę tej gałęzi, użyj:
Aby uzyskać więcej informacji o pomocy, użyj tego polecenia w terminalu:
lub
źródło
Zaawansowani użytkownicy Git mogą zmieniać nazwę ręcznie, używając:
źródło
Jeśli jesteś w oddziale, którego nazwę chcesz zmienić:
Jeśli jesteś w innym oddziale:
git push origin :old-name new-name
git push origin -u new-name
Aby szybko to zrobić, możesz wykonać następujące 3 kroki:
# Zmień nazwę oddziału lokalnie
# Usuń starą gałąź zdalną
# Wciśnij nowy oddział, ustaw oddział lokalny, aby śledził nowego pilota
Odniesienie: https://www.w3docs.com/snippets/git/how-to-rename-git-local-and-remote-branches.html
źródło
Oto trzy kroki: Polecenie, które możesz wywołać w swoim terminalu i zmienić nazwę oddziału.
Jeśli potrzebujesz więcej: krok po kroku, jak zmienić nazwę oddziału Git to dobry artykuł na ten temat.
źródło
Prawdopodobnie, jak wspominają inni, będzie to przypadek niedopasowania nazw gałęzi.
Jeśli masz taką sytuację, domyślam się, że korzystasz z systemu Windows, co doprowadzi Cię również do:
Następnie musisz zrobić krok pośredni:
Nic więcej.
źródło
-M
zamiast-m
tego rodzaju zmiany nazwy „naprawy obudowy” w jednym kroku.Próbuję odpowiedzieć konkretnie na pytanie (przynajmniej tytuł).
Możesz także zmienić nazwę oddziału lokalnego , ale nadal śledzi starą nazwę na pilocie.
Teraz po uruchomieniu
git push
zdalnyold_branch
ref jest aktualizowany o lokalnynew_branch
.Musisz znać i zapamiętać tę konfigurację. Ale może być przydatny, jeśli nie masz wyboru nazwy oddziału zdalnego, ale nie podoba ci się (och, mam na myśli, że masz bardzo dobry powód, aby jej nie lubić!) I wolisz jaśniejsze nazwa lokalnego oddziału.
Grając z konfiguracją pobierania, możesz nawet zmienić nazwę lokalnego zdalnego odwołania. tzn. posiadanie
refs/remote/origin/new_branch
wskaźnika ref do gałęzi, to w rzeczywistości jestold_branch
onorigin
. Odradzam to jednak dla bezpieczeństwa twojego umysłu.źródło
Lokalna zmiana oddziału jest dość łatwa ...
Jeśli jesteś w oddziale, dla którego chcesz zmienić nazwę, po prostu wykonaj następujące czynności:
W przeciwnym razie, jeśli jesteś
master
lub jakikolwiek inny oddział inny niż ten, który chcesz zmienić nazwę, po prostu zrobić:Ponadto tworzę obraz poniżej, aby pokazać to w akcji w wierszu polecenia . W tym przypadku jesteś na
master
oddziale, na przykład:źródło
Jeśli chcesz korzystać z SourceTree (co zdecydowanie polecam), możesz kliknąć prawym przyciskiem myszy oddział i wybrać „Zmień nazwę”.
źródło
Aby zmienić nazwę bieżącej gałęzi (z wyjątkiem odłączonego stanu HEAD), możesz również użyć tego aliasu:
źródło
Inną opcją jest w ogóle nie używanie wiersza poleceń. Klienci Git GUI, tacy jak SourceTree, usuwają wiele składniowej krzywej uczenia się / bólu, który powoduje, że pytania takie jak ta należą do najczęściej oglądanych w przepełnieniu stosu.
W SourceTree kliknij prawym przyciskiem myszy dowolną lokalną gałąź w panelu „Gałęzie” po lewej stronie i wybierz „Zmień nazwę ...”.
źródło
Prosty sposób to zrobić:
Aby uzyskać więcej informacji, zobacz to .
źródło
Ponieważ nie chcesz wypychać gałęzi na zdalny serwer, ten przykład będzie przydatny:
Załóżmy, że masz istniejącą gałąź o nazwie „my-hot-feature” i chcesz zmienić jej nazwę na „feature-15”.
Po pierwsze, chcesz zmienić swój lokalny oddział. To nie może być prostsze:
Aby uzyskać więcej informacji, możesz odwiedzić Lokalną i zdalną zmianę nazwy oddziału w Git .
źródło
Wersja Git 2.9.2
Jeśli chcesz zmienić nazwę lokalnego oddziału, w którym się znajdujesz:
Jeśli chcesz zmienić nazwę innego oddziału:
Jeśli chcesz zmienić nazwę innej gałęzi na nazwę, która już istnieje:
Uwaga: Ostatnie polecenie jest destrukcyjne i zmieni nazwę twojej gałęzi, ale utracisz starą gałąź o tej nazwie i tych zatwierdzeniach, ponieważ nazwy gałęzi muszą być unikalne.
źródło
Jeśli chcesz zmienić nazwę bieżącego oddziału, uruchom:
Jeśli chcesz usunąć starą gałąź zdalną, uruchom:
Jeśli chcesz usunąć starą gałąź zdalną i utworzyć nową gałąź zdalną, uruchom:
źródło
Zmiana nazwy oddziału Git może być wykonana przy użyciu:
git branch -m oldBranch newBranch
git branch -M oldBranch ExistingBranch
Różnica między -m a -M :
-m: jeśli próbujesz zmienić nazwę gałęzi na istniejącą nazwę gałęzi, używając -m . Pojawi się błąd informujący, że gałąź już istnieje. Musisz podać unikalną nazwę.
Ale,
-M: pomoże ci to wymusić zmianę nazwy na dane imię, nawet jeśli istnieje. Tak więc istniejący oddział nadpisze go całkowicie ...
Oto przykład terminala Git,
źródło
Dla użytkowników Git GUI nie może to być prostsze. W Git GUI wybierz nazwę gałęzi z rozwijanej listy w oknie dialogowym „Zmień nazwę gałęzi” utworzonej z pozycji menu Gałąź: Zmień nazwę, wpisz nową nazwę i kliknij „Zmień nazwę”. Podkreśliłem, gdzie znaleźć rozwijaną listę.
źródło
Jeśli chcesz:
git branch -m <oldname> <newname>
git push origin: old-name new-name
git commit <newname>
git push origin new_branch_name:master
git status
git checkout
źródło
Wszystkie poprzednie odpowiedzi mówią
git branch -m
. Oczywiście jest łatwy w obsłudze, ale dla mnie może być trochę trudno zapamiętać kolejne polecenie Git. Próbowałem więc wykonać pracę za pomocą polecenia, które znałem. Tak, możesz się domyślić.Używam
git branch -b <new_branch_name>
. A jeśli nie chcesz teraz zapisywać starej gałęzi, możesz ją wykonać,git branch -D <old_branch_name>
aby ją usunąć.Wiem, że to może być trochę nudne, ale łatwiej to zrozumieć i zapamiętać. Mam nadzieję, że ci się przyda.
źródło
W PhpStorm:
VCS → Git → Oddziały ... → Lokalne oddziały → _twoja_gałęza_ → Zmień nazwę
źródło
Wszystko, co musisz zrobić, to trzy kroki:
źródło