Hoe hernoem ik zowel de lokale Git-naam als de externe vertakkingsnaam?

Ik heb vier takken zoals master -> origin/regacy, FeatureA -> oorsprong/kenmerkA. Zoals je kunt zien, heb ik de verkeerde naam getypt.

Dus ik wil de naam van een externe vertakking wijzigen (oorsprong/regacy → oorsprong/legacy of oorsprong/master)

Ik probeer het onderstaande commando:

git remote rename regacy legacy

Maar Git console heeft mij een foutmelding teruggestuurd.

error : Could not rename config section 'remote.regacy' to 'remote.legacy'

Hoe kan ik dit probleem oplossen?


Antwoord 1, autoriteit 100%


Er zijn een paar manieren om dat te bereiken:

  1. Wijzig uw lokale vestiging en push uw wijzigingen
  2. Duw de branch naar remote met de nieuwe naam terwijl je de originele naam lokaal behoudt

Lokaal en extern hernoemen

# 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>


Alleen externe vertakking hernoemen

Tegoed: 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>

Belangrijke opmerking:

Als je de git branch -m(move) gebruikt, is Git ook je tracking branch aan het updatenmet de nieuwe naam.

git remote rename legacy legacy

git remote renameprobeert je remote sectie in je configuratiebestand bij te werken. Het zal de afstandsbediening hernoemen met de opgegeven naam naar de nieuwe naam, maar in jouw geval heeft het er geen gevonden, dus het hernoemen is mislukt.

Maarhet zal niet doen wat je denkt; het zal de naam van uw lokaleconfiguratie op afstand hernoemen en nietde externe tak. 


Opmerking
Git-servers kunnen je toestaan om Git-takken te hernoemen met behulp van de webinterface of externe programma’s (zoals Sourcetree, enz.), maar je moet in gedachten houden dat in Git al het werk lokaal wordt gedaan, dus het is aan te raden om de bovenstaande commando’s te gebruiken om het werk.


Antwoord 2, autoriteit 21%

Als u een filiaal verkeerd hebt genoemd en deze naar de externe repository hebt geduwd, volgt u deze stappen om die tak te hernoemen (Op basis van dit artikel ):

  1. Hernoem uw lokale filiaal:

    • Als u op het filiaal bent, wilt u hernoemen:
      git branch -m new-name

    • Als u op een andere tak bent:
      git branch -m old-name new-name

  2. Verwijder de old-nameRemote Branch en duw de new-nameLokale tak :
    git push origin :old-name new-name

  3. Reset de upstream-tak voor de nieuwe lokale tak :
    Schakel over naar de tak en vervolgens:
    git push origin -u new-name


Antwoord 3, Autoriteit 3%

Het lijkt erop dat er een directe manier is:

Als u echt gewoon de takken op afstand wilt hernoemen (zonder de lokale takken tegelijkertijd te hernoemen), kunt u dit doen met een enkele opdracht zoals

git push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name>

Renaming takken op afstand in Git

Zie het originele antwoord voor meer informatie.


Antwoord 4, Autoriteit 3%

  • Hernoem uw lokale filiaal .

Als u op het filiaal staat, wilt u hernoemen:

git branch -m new-name

Als u op de huidige tijd op een andere branche blijft:

git branch -m old-name new-name
  • Verwijder de externe vertakking met de oude naam en druk op de lokale vertakking met de nieuwe naam.

Blijf op de doeltak en:

git push origin :old-name new-name
  • Reset de upstream-tak voor de lokale tak met nieuwe naam.

Schakel over naar de doeltak en dan:

git push origin -u new-name

Antwoord 5, autoriteit 3%

Het kan ook op de volgende manier worden gedaan.

Hernoem eerst de lokale vestiging, daarna de externe vestiging.

De naam van de lokale vestiging wijzigen:

Indien ingelogd in een ander filiaal,

git branch -m old_branch new_branch 

Indien ingelogd in dezelfde tak,

git branch -m new_branch

Naam externe tak wijzigen:

git push origin :old_branch    // Delete the remote branch
git push --set-upstream origin new_branch   // Create a new remote branch

Antwoord 6

Als je de verkeerde naam al naar de afstandsbediening hebt gepusht, doe je het volgende:

  1. Schakel over naar de lokale vestiging waarvan u de naam wilt wijzigen

    git checkout <old_name>

  2. De naam van de lokale vestiging wijzigen

    git branch -m <new_name>

  3. Push de <new_name>lokale vertakking en reset de stroomopwaartse vertakking

    git push origin -u <new_name>

  4. Verwijder de <old_name>externe tak

    git push origin --delete <old_name>

Dit was gebaseerd op dit artikel.


Antwoord 7

Een eenvoudig Snippetbijvoegen voor het hernoemen van uw huidige branch (lokaal en on origin):

git branch -m <oldBranchName> <newBranchName>
git push origin :<oldBranchName>
git push --set-upstream origin <newBranchName>

Uitlegvan git docs:

git branch -mof -M optie, wordt hernoemd naar
. Als het een overeenkomstige reflog had, wordt deze hernoemd
overeenkomen, en er wordt een reflog-item gemaakt om de . te onthouden
tak hernoemen. Indien aanwezig, moet -M worden gebruikt om de . te forceren
hernoemen gebeurt.

De speciale refspec :(of +: om niet-fast-forward updates toe te staan)
geeft Git opdracht om “overeenkomstige” branches te pushen: voor elke branch die bestaat
aan de lokale kant, wordt de externe kant bijgewerkt als een vertakking van hetzelfde
naam bestaat al aan de externe kant.

–set-upstream
Stel de trackinginformatie in, zodat deze wordt beschouwd als de upstream-tak. Als nee is opgegeven, wordt standaard de huidige tak gebruikt.


Antwoord 8

Er is geen directe methode,

  1. Naam lokale vestiging wijzigen,

    Mijn huidige branch is master

    git branch -m master_renamed#master_renamed is de nieuwe naam van master

  2. Verwijder vertakking,

    git push origin --delete master#origin is remote_name

  3. Duw hernoemde branch naar remote,

    git push origin master_renamed

Dat is het…


Antwoord 9

Dit kan zelfs worden gedaan zonder de lokale vestiging te hernoemen in drie eenvoudige stappen:

  1. Ga naar je repository in GitHub
  2. Maak een nieuwe branch van de oude branch die je wilt hernoemen
  3. Verwijder de oude tak

Antwoord 10

Ik gebruik deze git alias en het is vrijwel het werk automatisch:

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;'

Gebruik: git verplaatsen van_branch naar_branch

Het werkt als u de standaardnamen zoals Master, ORIGHT enz.
U kunt wijzen als u wilt, maar het geeft u het idee.


Antwoord 11

  1. Hernoem uw lokale filiaal.
    Als u op het filiaal bent, wilt u hernoemen:

    Git Branch-m Nieuwe naam

Als u op een andere branche bent:

git branch -m old-name new-name
  1. Verwijder de externe tak van de oude naam en druk op de lokale tak van de nieuwe naam.

    Git Push Origin: Old-Name Nieuwe naam

  2. Reset de upstream-filiaal voor de lokale tak van de nieuwe naam.
    Schakel over naar de tak en vervolgens:

    Git Push Origin -U Nieuwe naam

Alle set!


Antwoord 12

Ik moest de volgende taak doen om lokale en afstandsbediening te hernoemen:

# 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>

Other episodes