Mam cztery gałęzie, takie jak master -> origin / regacy, FeatureA -> origin / FeatureA. Jak widać, wpisałem niewłaściwe imię.
Chcę więc zmienić nazwę zdalnej gałęzi (origin / regacy → origin / legacy lub origin / master)
Próbuję polecenia poniżej:
git remote rename regacy legacy
Ale konsola Git zwróciła mi komunikat o błędzie.
error : Could not rename config section 'remote.regacy' to 'remote.legacy'
Jak mogę rozwiązać ten problem?
git
repository
rename
git-branch
JayD
źródło
źródło
Odpowiedzi:
Istnieje kilka sposobów na osiągnięcie tego:
Zmiana nazwy lokalnej i zdalnej
Zmiana nazwy tylko zdalnej gałęzi
Źródło : ptim
Ważna uwaga:
Kiedy używasz
git branch -m
(przenieś), Git aktualizuje również gałąź śledzenia nową nazwą.git remote rename
próbuje zaktualizować sekcję zdalną w pliku konfiguracyjnym. Zmieni nazwę pilota z podaną nazwą na nową, ale w twoim przypadku nie znalazł żadnej, więc zmiana nazwy nie powiodła się.Ale nie zrobi tego, co myślisz; zmieni nazwę zdalną konfiguracji lokalnej, a nie zdalną gałąź.
Uwaga: Serwery Git mogą umożliwiać zmianę nazwy gałęzi Git przy użyciu interfejsu internetowego lub programów zewnętrznych (takich jak Sourcetree itp.), Ale należy pamiętać, że w Git cała praca jest wykonywana lokalnie, dlatego zaleca się stosowanie powyższych poleceń do pracy.
źródło
Your configuration specifies to merge with the ref ''refs/heads/old_name'
git checkout <new_name> ; git branch --unset-upstream
--unset-upstream
przed ponownym pchaniem, działa zgodnie z przeznaczeniem.Jeśli nazwa gałęzi została podana niepoprawnie ORAZ wypchnęła to do zdalnego repozytorium, wykonaj następujące kroki, aby zmienić nazwę tej gałęzi ( na podstawie tego artykułu ):
Zmień nazwę swojego lokalnego oddziału:
Jeśli jesteś w oddziale, którego nazwę chcesz zmienić:
git branch -m new-name
Jeśli jesteś w innym oddziale:
git branch -m old-name new-name
Usuń
old-name
gałąź zdalną i wypchnijnew-name
gałąź lokalną :git push origin :old-name new-name
Zresetuj gałąź nadrzędną dla gałęzi lokalnej o nowej nazwie :
Przełącz na gałąź, a następnie:
git push origin -u new-name
źródło
git push <remote> --delete old_name
&,git push origin :old-name new-name
aby usunąć gałąź.master
, w Szczegółach repozytorium ustaw domyślną gałąź na nową gałąź. Błąd jest następujący:By default, deleting the current branch is denied, because the next 'git clone' won't result in any file checked out, causing confusion. You can set 'receive.denyDeleteCurrent' configuration variable to 'warn' or 'ignore' in the remote repository to allow deleting the current branch, with or without a warning message. To squelch this message, you can set it to 'refuse'. error: refusing to delete the current branch: refs/heads/master
Wydaje się, że istnieje bezpośredni sposób:
Zobacz oryginalną odpowiedź, aby uzyskać więcej szczegółów.
źródło
2.20.1
Usunięto stary oddział, ale nowy nie został utworzony.Można to również zrobić w następujący sposób.
Najpierw zmień nazwę oddziału lokalnego, a następnie oddziału zdalnego.
Zmiana nazwy lokalnego oddziału:
Jeśli zalogowany w innym oddziale,
Jeśli zalogowany w tym samym oddziale,
Zmiana nazwy oddziału zdalnego:
źródło
Jeśli już wysłałeś niewłaściwą nazwę do pilota, wykonaj następujące czynności:
Przejdź do lokalnego oddziału, którego nazwę chcesz zmienić
git checkout <old_name>
Zmień nazwę lokalnego oddziału
git branch -m <new_name>
Naciśnij
<new_name>
gałąź lokalną i zresetuj gałąź nadrzędnągit push origin -u <new_name>
Usuń
<old_name>
zdalną gałąźgit push origin --delete <old_name>
Zostało to oparte na tym artykule .
źródło
Mocowanie prostego urywek na zmianę nazwy bieżącej Branch (lokalnej i na pochodzenie):
Wyjaśnienie z docs git:
źródło
Nie ma bezpośredniej metody,
Zmień nazwę oddziału lokalnego ,
Moja obecna gałąź to master
git branch -m master_renamed
#master_renamed to nowa nazwa mistrzaUsuń zdalną gałąź,
git push origin --delete master
#origin to nazwa_zdalnaWciśnij gałąź o zmienionej nazwie do pilota,
git push origin master_renamed
Otóż to...
źródło
git push -u origin master_renamed
ustawić gałąź jako gałąź śledzeniaMożna to zrobić nawet bez zmiany nazwy oddziału lokalnego w trzech prostych krokach:
źródło
Używam tych aliasów git i robi to prawie automatycznie:
Działa, jeśli masz domyślne nazwy, takie jak master, origin itp. Możesz modyfikować, jak chcesz, ale daje to pomysł.
źródło
Musiałem wykonać następujące zadanie, aby zmienić nazwę oddziału lokalnego i zdalnego:
źródło
Zmień nazwę swojego lokalnego oddziału. Jeśli jesteś w oddziale, którego nazwę chcesz zmienić:
gałąź git -m nowa-nazwa
Jeśli jesteś w innym oddziale:
Usuń gałąź zdalną o starej nazwie i wciśnij gałąź lokalną o nowej nazwie.
git push origin: stara nazwa nowa nazwa
Zresetuj gałąź nadrzędną dla gałęzi lokalnej o nowej nazwie. Przejdź do oddziału, a następnie:
git push origin -u nowa-nazwa
Wszystko gotowe!
źródło
Jeśli jesteś w oddziale, którego nazwę chcesz zmienić:
jeśli obecnie przebywasz w innym oddziale:
Pozostań w gałęzi docelowej i:
Przejdź do gałęzi docelowej, a następnie:
źródło