Czy sprawdziłeś w ustawieniach administratora? Mój obecny projekt na githubie nie ma żadnych gałęzi, ale możesz zmienić tam nazwę repozytorium, więc sądzę, że możesz również zmienić nazwy gałęzi.
evanmcdonnal
12
@evanmcdonnal Nie, nie można zmienić nazwy oddziału Git z witryny GitHub.
Andrew Marshall
Odpowiedzi na to pytanie są prawie całkowicie błędne. Pytanie nie dotyczy tego, jak zmienić nazwę gałęzi git, ale jak zmienić nazwę gałęzi github . Wiele rzeczy na githubie jest powiązanych z gałęzią, co oznacza, że każda odpowiedź musi obejmować te rzeczy. Na przykład zmiana nazwy master na main
gman
@gman Wydaje się, że te wartości były odpowiedzią na pytanie OP. Pytanie OP może nie zostać idealnie sformułowane z technicznie wymagającego punktu widzenia lub odpowiedniego problemu, nad którym obecnie się zastanawiasz. Ale to pytanie nie pochodzi z głębokiego zaplecza technicznego ani git, ani GitHub. Z tej perspektywy można uznać to za pytanie „początkujące” lub elementarne. Jako taki jest sformułowany i odpowiedział odpowiednio dla tej grupy odbiorców. Frustrujące, jasne, ale myślę, że te Q, Odpowiedzi te są odpowiednie / istotne, szczególnie dla Q użycia git / Hub sprzed BLM.
SherylHohman
Odpowiedzi:
309
Jak wspomniano, usuń stary na Github i ponownie wypchnij, chociaż użyte polecenia są bardziej szczegółowe niż to konieczne:
Prosty. Rozróżniając nieco polecenia, polecenie git push jest zasadniczo:
git push <remote> <local_branch>:<remote_branch>
A zatem robienie wypychania bez podanego adresu local_branch oznacza w zasadzie „nie pobieraj niczego z mojego lokalnego repozytorium i uczyń go zdalną gałęzią”. Zawsze uważałem, że jest to całkowicie nieprzyzwoite, ale tak właśnie się dzieje.
Edycja: Począwszy od Git 1.7 istnieje alternatywna składnia do usuwania zdalnej gałęzi:
Zauważ, że argumenty pozycyjne w poleceniach powłoki były problematyczne w starszych (wcześniejszych niż 2.8?) Wersjach git, więc alias może się różnić w zależności od wersji git. Zobacz tę dyskusję, aby uzyskać szczegółowe informacje.
Należy pamiętać, że można połączyć operacje 2 Naciśnij: git push origin :old_branch new_branch. Spowoduje to zarówno usunięcie starej gałęzi, jak i wypchnięcie nowej.
void.pointer
4
Czy jest jakiś powód, dla którego nowa gałąź nie może zostać wypchnięta przed usunięciem starej? Osobiście wolę procesy, w których operacja usuwania ma miejsce po pomyślnym zakończeniu operacji tworzenia, na wypadek, gdyby coś poszło nie tak.
jmort253
7
Nie działa. Po prostu przywróci gałąź Github ze swoją starą nazwą.
geoff
1
@AdamParkin 1. git branch -m new_branch(zmień nazwę old_branch na new_branch) 2. git commit -m 'msg', 3. git push4. Mhmm, old_branch pojawia się w Github, pytanie Google, a ja jestem poproszony o odpowiedź 5. git push origin :old_branch(mówi, że została usunięta) 6. git push origin new_branch... wypełnia, a następnie mówi * [new branch] new_branch -> old_branch. Wróć do Github i old_branchpojawi się ponownie. Jeśli usunę w internetowym interfejsie Github, mam opcję „Przywróć”, więc wygląda na to, że naciśnięcie nowej_gałęzi po prostu przywraca.
Kcvin
2
Jedną z rzeczy, o których należy pamiętać, jest to, że kiedy zmienisz nazwę oddziału, wszystkie otwarte żądania ściągania w stosunku do tego żądania ściągania zostaną automatycznie zamknięte. Musieliśmy zmienić nazwę oddziału, a następnie ręcznie otworzyć ponownie wszystkie żądania ściągnięcia ....
To krótka odpowiedź, która działa. BTW, pierwsza komenda może być również umieszczona jako ostatnia w odpowiedzi.
Eric Wang
ta odpowiedź obejmuje git not github
gman
1
Właściwie zrobiłem to dwa razy i działało to na githubie.
spozun
17
Znalazłem 3 polecenia, jak możesz zmienić nazwę gałęzi git, i te polecenia są szybszym sposobem na to
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
Jeśli potrzebujesz krok po kroku, możesz przeczytać ten świetny artykuł
git push --set-upstreamjest najważniejszą częścią, jeśli zdarzy ci się zmienić nazwę oddziału lokalnie za pomocą aplikacji github przed usunięciem oddziału zdalnego.
Louis Yang
ta odpowiedź obejmuje git not github
gman
12
Po prostu usuń starą gałąź i utwórz nową.
Przykład (wyłącznie zmiana nazwy oddziału zdalnego):
To jest dla git, a GitHub jest pod gitem, więc będzie działać i będzie działać ze mną i innymi
Abdelrahman Mohamed
To nie działa Spróbuj pierwszego i drugiego kroku git branch -m new-name && git push origin :master new-name. To zawiedzie. Jeśli ta odpowiedź dotyczy tylko git, a nie github, to pytanie jest duplikatem kilku innych pytań i powinno zostać zamknięte. Jeśli tak naprawdę chodzi o github, odpowiedź musi obejmować github. Ta odpowiedź nie.
gman
6
Możesz to zrobić bez terminala, wystarczy utworzyć gałąź o nowej nazwie i usunąć starą po. Możesz użyć tego postu, aby to zrobić.
Dzięki, ale musiałem przejść do oddziału i go zaimportować.
Flash Sheridan
1
ta odpowiedź obejmuje git not github
gman
0
W tym artykule pokazano, jak to zrobić naprawdę łatwo.
1. Aby zmienić nazwę lokalnego oddziału Git, możemy użyć polecenia Git branch -m w celu zmodyfikowania nazwy:
git branch -m feature1 feature2 2. Jeśli szukasz polecenia zmiany nazwy zdalnego oddziału Git, to jest to: „
git push -u origin feature2:feature3 Sprawdź, czy nie masz tagi na gałęzi, zanim to zrobisz. Możesz to zrobić za pomocą git tag.
zrób to samo na wszystkich swoich zdalnych źródłach / serwerach (jeśli istnieje)
info : na zdalnych serwerach zwykle nie ma katalogów referencji / pilotów / *, ponieważ jesteś już na zdalnym serwerze;) (no może w zaawansowanych konfiguracjach git może być to możliwe, ale nigdy tego nie widziałem)
Nazwa oddziału teraz zmienia się z awe/some/branchna new-branch-name(lokalna i zdalna!)
Katalogi w nazwie oddziału zostały usunięte.
Informacje: Ten sposób może nie być najlepszy, ale nadal działa dla osób, które mogą mieć problemy z innymi sposobami
Ten dodatkowy krok może być konieczny tylko dlatego, że (zazwyczaj) konfiguruję zdalne śledzenie w moich oddziałach za pośrednictwem . W ten sposób, kiedy się wymelduję, potrzebuję tylko typu zamiastgit push-uorigin oldnameoldnamegit pushgit push origin oldname
Jeśli ja nie użyć polecenia git branch --unset-upstreamprzed git push origin newbranchgit ponownie tworzyoldbranch i popycha newbranchdo origin oldbranch- moim zamiarem pokonania.
@gman Punkt zajęty. Moje rozwiązanie używa git lokalnie do zmiany nazwy gałęzi na GitHub, zdalnie, po zmianie nazwy na lokalnej kopii git repozytorium GitHub. Być może może to być uznane za wyspecjalizowane rozwiązanie, ponieważ gdy chcesz użyć wiersza polecenia, a nie interfejsu witryny GitHub, a masz lokalnego klona, który również chcesz zaktualizować. Dziękujemy za podkreślenie tego rozróżnienia i wyjaśnienie, że ta odpowiedź dotyczy konkretnego przypadku, a nie ogólnego rozwiązania.
SherylHohman
Problem polega na tym, że github wiąże funkcje z gałęziami. Spróbuj zmienić nazwę master na main, a instrukcje się nie powiodą.
gman
-1
Następujące polecenia zmieniają nazwę gałęzi lokalnie, usuwają starą gałąź w lokalizacji zdalnej i pchają nową gałąź, ustawiając gałąź lokalną do śledzenia nowego pilota:
Chociaż fragment kodu może rozwiązać problem, należy opisać, jaki jest cel kodu (jak rozwiązuje problem). Ponadto możesz sprawdzić stackoverflow.com/help/how-to-answer
Ahmad F
ta odpowiedź obejmuje git not github
gman
-1
To takie proste . Aby zmienić nazwę gałęzi git lokalnie i zdalnie, użyj tego fragmentu kodu (przetestowanego i działa jak urok):
Git Reference:
Z opcją -m lub -M zostanie zmieniona nazwa na. Jeśli miał odpowiedni dziennik rejestrowania, jego nazwa jest dopasowywana, a pozycja dziennika rejestrowania jest tworzona w celu zapamiętania zmiany nazwy oddziału. Jeśli istnieje, należy użyć opcji -M, aby wymusić zmianę nazwy.
Usuń krok:
Referencje Git: git push origin: eksperymentalna Znajdź referencję pasującą do eksperymentalnej w repozytorium źródłowym (np. Referencje
/ głowice / eksperymentalne) i usuń ją.
Aktualizacja na etapie zdalnego repozytorium (odniesienie do śledzenia w celu śledzenia):
Odwołanie do git :
--set-upstream Dla każdej gałęzi, która jest aktualna lub pomyślnie wypchnięta, dodaj odwołanie upstream (śledzące), używane przez bez argumentów git-pull [1] i inne polecenia. Aby uzyskać więcej informacji, zobacz branch..merge w git-config [1].
Na gałęzi git uruchom git gałąź -m stara_nazwa nowa_nazwa To zmodyfikuje nazwę gałęzi na lokalnym repozytorium git push origin: stara_nazwa nowa_nazwa Spowoduje to wypchnięcie zmodyfikowanej nazwy do zdalnego i usunie starą gałąź git push origin -u nowa_nazwa Ustawia lokalną gałąź do śledzenia oddział zdalny. To rozwiązuje problem
Odpowiedzi:
Jak wspomniano, usuń stary na Github i ponownie wypchnij, chociaż użyte polecenia są bardziej szczegółowe niż to konieczne:
Prosty. Rozróżniając nieco polecenia, polecenie git push jest zasadniczo:
A zatem robienie wypychania bez podanego adresu local_branch oznacza w zasadzie „nie pobieraj niczego z mojego lokalnego repozytorium i uczyń go zdalną gałęzią”. Zawsze uważałem, że jest to całkowicie nieprzyzwoite, ale tak właśnie się dzieje.
Edycja: Począwszy od Git 1.7 istnieje alternatywna składnia do usuwania zdalnej gałęzi:
Edycja: Jak wspomniano w komentarzach @ void.pointer
Można to zmienić w prosty alias, który przyjmuje jako argument zdalną, oryginalną gałąź i nową gałąź w
~/.gitconfig
:Stosowanie:
Zauważ, że argumenty pozycyjne w poleceniach powłoki były problematyczne w starszych (wcześniejszych niż 2.8?) Wersjach git, więc alias może się różnić w zależności od wersji git. Zobacz tę dyskusję, aby uzyskać szczegółowe informacje.
źródło
git push origin :old_branch new_branch
. Spowoduje to zarówno usunięcie starej gałęzi, jak i wypchnięcie nowej.git branch -m new_branch
(zmień nazwę old_branch na new_branch) 2.git commit -m 'msg'
, 3.git push
4. Mhmm, old_branch pojawia się w Github, pytanie Google, a ja jestem poproszony o odpowiedź 5.git push origin :old_branch
(mówi, że została usunięta) 6.git push origin new_branch
... wypełnia, a następnie mówi* [new branch] new_branch -> old_branch
. Wróć do Github iold_branch
pojawi się ponownie. Jeśli usunę w internetowym interfejsie Github, mam opcję „Przywróć”, więc wygląda na to, że naciśnięcie nowej_gałęzi po prostu przywraca.Dla mnie działały następujące polecenia:
źródło
Znalazłem 3 polecenia, jak możesz zmienić nazwę gałęzi git, i te polecenia są szybszym sposobem na to
Jeśli potrzebujesz krok po kroku, możesz przeczytać ten świetny artykuł
Jak zmienić nazwę Git na oddziały lokalne i zdalne
źródło
git push --set-upstream
jest najważniejszą częścią, jeśli zdarzy ci się zmienić nazwę oddziału lokalnie za pomocą aplikacji github przed usunięciem oddziału zdalnego.Po prostu usuń starą gałąź i utwórz nową.
Przykład (wyłącznie zmiana nazwy oddziału zdalnego):
Prawdopodobnie powinieneś również zmienić nazwę lokalnego oddziału i zmienić ustawienia dotyczące tego, gdzie należy pchać / wyciągać.
źródło
git push origin newname:refs/heads/newname
? master i newname nie mogą wskazywać na to samo zatwierdzenie.Zmień nazwy gałęzi w git lokalnym i zdalnym
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.
Przejdź do oddziału, a następnie:
Wniosek jest taki
źródło
git branch -m new-name && git push origin :master new-name
. To zawiedzie. Jeśli ta odpowiedź dotyczy tylko git, a nie github, to pytanie jest duplikatem kilku innych pytań i powinno zostać zamknięte. Jeśli tak naprawdę chodzi o github, odpowiedź musi obejmować github. Ta odpowiedź nie.Możesz to zrobić bez terminala, wystarczy utworzyć gałąź o nowej nazwie i usunąć starą po. Możesz użyć tego postu, aby to zrobić.
https://github.com/blog/1377-create-and-delete-branches
źródło
Oto, co zadziałało dla mnie:
1.) Najpierw utwórz nowy oddział: git push github newname: refs / heads / newname
2.) Na stronie github, przejdź do ustawień goto i zmień domyślną gałąź na newname
3.) Usuń starą nazwę git push github - usuń starą nazwę
źródło
źródło
W tym artykule pokazano, jak to zrobić naprawdę łatwo.
1. Aby zmienić nazwę lokalnego oddziału Git, możemy użyć polecenia Git branch -m w celu zmodyfikowania nazwy:
git branch -m feature1 feature2
2. Jeśli szukasz polecenia zmiany nazwy zdalnego oddziału Git, to jest to: „
git push -u origin feature2:feature3
Sprawdź, czy nie masz tagi na gałęzi, zanim to zrobisz. Możesz to zrobić za pomocą
git tag
.źródło
Innym sposobem jest zmiana nazwy następujących plików :
.git/refs/head/[branch-name]
na.git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/[branch-name]
na.git/refs/remotes/[all-remote-names]/new-branch-name
Zmień nazwę głowy i pilotów na komputerze lokalnym i na źródłach / zdalnych serwerach
Nazwa oddziału została zmieniona (lokalna i zdalna!)
Uwaga
Jeśli twoja obecna nazwa gałęzi zawiera ukośniki (
/
), git utworzy katalogi w następujący sposób:obecna nazwa oddziału:
"awe/some/branch"
.git/refs/head/awe/some/branch
.git/refs/remotes/[all-remote-names]/awe/some/branch
życzę nazwa oddziału:
"new-branch-name"
branch
plik z.git/refs/*/awe/some/
.git/refs/head/
.branch
plik ze wszystkich.git/refs/remotes/*/awe/some/
.git/refs/remotes/*/
.branch
plików nanew-branch-name
..git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/new-branch-name
Nazwa oddziału teraz zmienia się z
awe/some/branch
nanew-branch-name
(lokalna i zdalna!)Katalogi w nazwie oddziału zostały usunięte.
Informacje: Ten sposób może nie być najlepszy, ale nadal działa dla osób, które mogą mieć problemy z innymi sposobami
źródło
W moim przypadku potrzebowałem dodatkowego polecenia, aby moja gałąź o zmienionej nazwie przyspieszyła
git branch --unset-upstream
origin newname
.(Dla ułatwienia pisania), najpierw
git checkout oldname
.Następnie uruchom następujące czynności:
git branch -m newname
git push origin :oldname
lub lubgit push origin --delete oldname
git branch --unset-upstream
git push -u origin newname
git push origin newname
Ten dodatkowy krok może być konieczny tylko dlatego, że (zazwyczaj) konfiguruję zdalne śledzenie w moich oddziałach za pośrednictwem . W ten sposób, kiedy się wymelduję, potrzebuję tylko typu zamiast
git push
-u
origin oldname
oldname
git push
git push origin oldname
Jeśli ja nie użyć polecenia
git branch --unset-upstream
przedgit push origin newbranch
git ponownie tworzyoldbranch
i popychanewbranch
doorigin oldbranch
- moim zamiarem pokonania.źródło
Następujące polecenia zmieniają nazwę gałęzi lokalnie, usuwają starą gałąź w lokalizacji zdalnej i pchają nową gałąź, ustawiając gałąź lokalną do śledzenia nowego pilota:
źródło
To takie proste . Aby zmienić nazwę gałęzi git lokalnie i zdalnie, użyj tego fragmentu kodu (przetestowanego i działa jak urok):
Wyjaśnienie:
Zmień nazwę kroku:
Usuń krok:
Aktualizacja na etapie zdalnego repozytorium (odniesienie do śledzenia w celu śledzenia):
źródło
3 proste kroki
git push head origin
git gałąź -m stara-nazwa-gałęzi nowa-nazwa-gałęzi
git push head origin
źródło
Na gałęzi git uruchom git gałąź -m stara_nazwa nowa_nazwa To zmodyfikuje nazwę gałęzi na lokalnym repozytorium git push origin: stara_nazwa nowa_nazwa Spowoduje to wypchnięcie zmodyfikowanej nazwy do zdalnego i usunie starą gałąź git push origin -u nowa_nazwa Ustawia lokalną gałąź do śledzenia oddział zdalny. To rozwiązuje problem
źródło