Jak zmienić nazwę lokalnej i zdalnej gałęzi Git?
Mam cztery gałęzie: master - > origin / regacy, FeatureA - > origin/FeatureA. Jak widzisz, wpisałem złe imię.
Dlatego chcę zmienić nazwę zdalnej gałęzi (origin / regacy → origin / legacy lub origin / master)Próbuję wykonać poniższe polecenie:
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? 12 answers
Jest kilka sposobów, aby to osiągnąć:
- Zmień lokalną gałąź, a następnie wypchnij zmiany
- Przesuń gałąź do zdalnego z nową nazwą, zachowując oryginalną nazwę lokalnie
Zmiana nazw lokalnych i zdalnych
# Rename the local branch to the new name
git branch -m <old_name> <new_name>
# Delete the old branch on remote - where <remote> is, for example, origin
git push <remote> --delete <old_name>
# Or shorter way to delete remote branch [:]
git push <remote> :<old_name>
# Prevent git from using the old name when pushing in the next step.
# Otherwise, git will use the old upstream name instead of <new_name>.
git branch --unset-upstream <old_name>
# Push the new branch to remote
git push <remote> <new_name>
# Reset the upstream branch for the new_name local branch
git push <remote> -u <new_name>
Zmiana nazwy tylko zdalnej gałęzi
Kredyt: ptim
# In this option, we will push the branch to the remote with the new name
# While keeping the local name as is
git push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name>
Ważna uwaga:
Kiedy używasz git branch -m
(move), Git jest również Aktualizacja Twojej gałęzi śledzenia o nową nazwę.
git remote rename legacy legacy
git remote rename
próbuje zaktualizować sekcję zdalną w pliku konfiguracyjnym. Zmieni nazwę pilota z podaną nazwą na nową nazwę, ale w Twoim przypadku nie znalazł żadnej, więc zmiana nazwy nie powiodła się.
Ale nie zrobi tego, co myślisz; zmieni nazwę Twojego lokalnego nazwy zdalnej Konfiguracji i Nie zdalnego branch.
Uwaga Serwery Git mogą pozwolić na zmianę nazw gałęzi Git za pomocą interfejsu WWW lub zewnętrznych programów (takich jak Sourcetree, itp.), ale musisz pamiętać, że w Git cała praca jest wykonywana lokalnie, więc zalecane jest użycie powyższych poleceń do pracy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-12-08 03:43:48
Jeśli nazwałeś gałąź nieprawidłowo i przesunąłeś ją do zdalnego repozytorium, wykonaj następujące kroki, aby zmienić jej nazwę ( na podstawie tego artykułu):
-
Zmień nazwę lokalnego oddziału:
Jeśli znajdujesz się w gałęzi, którą chcesz zmienić nazwę:
git branch -m new-name
Jeśli jesteś na innej gałęzi:
git branch -m old-name new-name
Usuń zdalną gałąź
old-name
i wciśnijnew-name
lokalny oddział:git push origin :old-name new-name
Zresetuj gałąź upstream dla lokalnej gałęzi o nowej nazwie :
Przełączyć się na gałąź, a następnie:git push origin -u new-name
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-09 08:58:23
Wydaje się, że istnieje bezpośredni sposób:
Jeśli naprawdę chcesz zdalnie zmienić nazwę gałęzi (bez zmiany nazwy lokalnych gałęzi w tym samym czasie), możesz to zrobić za pomocą jednego polecenia, takiego jak
git push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name>
Zobacz oryginalną odpowiedź, aby uzyskać więcej szczegółów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-23 11:31:43
Można to również zrobić w następujący sposób.
najpierw zmień nazwę lokalnej gałęzi, a następnie zdalnej gałęzi.
Zmiana nazwy oddziału lokalnego:
Jeśli zalogowany w innym oddziale,
git branch -m old_branch new_branch
Jeśli zalogowany w tym samym oddziale,
git branch -m new_branch
Zmiana nazwy zdalnej gałęzi:
git push origin :old_branch // Delete the remote branch
git push --set-upstream origin new_branch // Create a new remote branch
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-23 11:36:24
- Zmień nazwę lokalnego oddziału .
Jeśli jesteś na gałęzi chcesz zmienić nazwę:
git branch -m new-name
Jeśli pozostaniesz na innym oddziale w bieżącym czasie:
git branch -m old-name new-name
- Usuń zdalną gałąź o starej nazwie i wypchnij lokalną gałąź o nowej nazwie.
Pozostań na gałęzi docelowej i:
git push origin :old-name new-name
- Zresetuj gałąź upstream dla lokalnej gałęzi o nowej nazwie.
Przełączyć się na gałąź docelową i następnie:
git push origin -u new-name
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-04 15:14:16
Jeśli już nacisnąłeś złą nazwę na remote, wykonaj następujące czynności:
-
Przełącz 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>
lokalną gałąź i zresetuj gałąź upstreamgit push origin -u <new_name>
-
Usuń
<old_name>
zdalny oddziałgit push origin --delete <old_name>
Opracowano na podstawie tego artykułu .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-24 18:22:04
Dołączenie prostego fragmentu do zmiany nazwy bieżącej gałęzi (lokalnej i na origin):
git branch -m <oldBranchName> <newBranchName>
git push origin :<oldBranchName>
git push --set-upstream origin <newBranchName>
Wyjaśnienie z git docs:
Git branch-m lub opcja-M, zostanie zmieniona na . Jeśli ma odpowiedni reflog, zmienia nazwę dopasować, a wpis reflog jest tworzony w celu zapamiętania zmiana nazwy oddziału. Jeśli istnieje,- M musi być użyte, aby wymusić Zmień nazwę na happen.
Specjalny refspec: (lub +: aby umożliwić aktualizacje bez przewijania do przodu) kieruje Git do "pasujących" gałęzi: dla każdej gałęzi, która istnieje po stronie lokalnej, strona zdalna jest aktualizowana, jeśli gałąź tego samego nazwa już istnieje po stronie zdalnej.
--set-upstream Skonfiguruj informacje o śledzeniu, więc jest uważany za gałąź upstream. Jeżeli nie jest podane, wtedy domyślnie jest to branch.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-19 14:31:21
Nie ma metody bezpośredniej,
-
Zmień Nazwę Lokalnego Oddziału ,
Moja obecna gałąź to master
git branch -m master_renamed
#master_renamed to nowa nazwa master -
Delete Remote branch,
git push origin --delete master
#origin is remote_name -
Wciśnij gałąź do zdalnego,
git push origin master_renamed
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-23 11:35:23
Można to zrobić nawet bez zmiany nazwy lokalnej gałęzi w trzech prostych krokach:
- Przejdź do swojego repozytorium w GitHub
- Utwórz nową gałąź ze starej gałęzi, którą chcesz zmienić nazwę
- Usuń starą gałąź
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-23 11:37:17
Używam tych aliasów git i w zasadzie działa automatycznie:
git config --global alias.move '!git checkout master; git branch -m $1 $2; git status; git push --delete origin $1; git status; git push -u origin $2; git branch -a; exit;'
Użycie: git move FROM_BRANCH to_branch
To działa, jeśli masz domyślne nazwy, takie jak master, origin itp. Możesz modyfikować, jak chcesz, ale to daje pomysł.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-24 09:56:22
Musiałem wykonać następujące zadanie, aby zmienić nazwę lokalnej i zdalnej gałęzi:
# Rename the local branch to the new name
git branch -m <old_name> <new_name>
# Delete the old remote branch
git push origin --delete <old_name>
# push to new remote branch - creates new remote branch
git push origin <new_name>
# set new remote branch as default remote branch for local branch
git branch --set-upstream-to=origin/<new_name> <new_name>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-19 10:13:22
-
Zmień nazwę lokalnego oddziału. Jeśli znajdujesz się na gałęzi, którą chcesz zmienić nazwę:
Git branch-m new-name
Jeśli jesteś na innej gałęzi:
git branch -m old-name new-name
-
Usuń zdalną gałąź o starej nazwie i wypchnij lokalną gałąź o nowej nazwie.
Git push origin :old-name new-name
-
Resetuje gałąź upstream dla lokalnej gałęzi o nowej nazwie. Switch to the branch and then:
Git push origin-u new-name
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-12-12 07:36:49