Git-branch hernoemen: lokaal, remote en GitHub-default | We.Inc
Genereer de exacte commando's om een git-branch lokaal te hernoemen, de nieuwe naam te pushen, de oude remote branch te verwijderen en upstream tracking te herstellen, plus main hernoemen op GitHub.
Om de branch waarop u staat te hernoemen, voert u git branch -m new-name uit. Voor een andere branch voert u git branch -m old-name new-name uit. Git kan een branch op een remote niet hernoemen, dus push de nieuwe naam met git push -u origin new-name en verwijder daarna de oude met git push origin --delete old-name.
Commando's voor hernoemen per situatie
Situatie
Commando
De huidige branch hernoemen
git branch -m new-name
Een andere branch hernoemen
git branch -m old-name new-name
Een bestaande naam overschrijven
git branch -M old-name new-name
De nieuwe naam publiceren en volgen
git push -u origin new-name
De oude naam van de remote verwijderen
git push origin --delete old-name
Een clone herstellen nadat iemand anders hernoemde
git branch -u origin/new-name new-name
Lokaal hernoemen is één commando; bij de remote lopen mensen vast, omdat een remote branch niet ter plekke hernoemd kan worden, alleen vervangen. Vul hieronder de oude en nieuwe naam in om de commando's voor uw situatie te krijgen, inclusief wat teamgenoten daarna moeten uitvoeren en de extra stappen als de branch de default op GitHub is.
Vul de oude naam, de nieuwe naam en de remote in, meestal origin.
Vink aan of u op die branch staat en of hij al op de remote bestaat.
Voer de commando's op volgorde uit; de builder voegt de push, de delete en het herstel van upstream alleen toe als ze van toepassing zijn.
Stuur het blok voor teamgenoten naar iedereen die ook een clone heeft.
Push de nieuwe naam voordat u de oude verwijdert, zodat een open pull request of een CI-run de branch nooit helemaal ziet verdwijnen.
Op GitHub is hernoemen via de branches-pagina beter voor gedeelde branches: open pull requests worden omgezet en oude URL's voor u doorgestuurd.
Doorzoek uw CI-workflows, deploy-instellingen en scripts op de oude naam. GitHub merkt op dat Actions-workflows die ernaar verwijzen niet worden bijgewerkt.
git branch -m hernoemt ook de reflog van de branch, zodat de lokale geschiedenis van verplaatsingen de nieuwe naam volgt.
Veelgestelde vragen
Kan ik een remote branch direct hernoemen?
Niet met gewone git. U pusht de branch onder de nieuwe naam en verwijdert de oude naam. De webinterface van GitHub kan een branch op de server hernoemen, waarbij pull requests en links ook blijven werken.
Wat is het verschil tussen -m en -M?
-m weigert als er al een branch met de nieuwe naam bestaat. -M is kort voor --move --force en vervangt die. Geen van beide hernoemt een branch die in een andere worktree van dezelfde repository is uitgecheckt.
Hoe hernoem ik master naar main op GitHub?
Open in de repository op GitHub Branches, kies hernoemen bij master en typ main. Voor het hernoemen van de default branch is admin-toegang nodig. Daarna voert iedereen de vier commando's uit die GitHub toont: lokaal hernoemen, fetchen, de upstream instellen en de HEAD van origin bijwerken.
Waarom gaat git push nog steeds naar de oude branchnaam?
De hernoemde branch volgt nog de oude upstream. Push één keer met -u, of voer git branch -u origin/new-name uit, en latere pushes en pulls gebruiken de nieuwe naam.
Wat GitHub bijwerkt als u daar hernoemt
GitHub stuurt web-URL's met de oude naam door, verplaatst branch protection naar de nieuwe naam en zet open pull requests en conceptreleases die erop gebaseerd zijn om. Raw-bestands-URL's worden niet doorgestuurd.
Gebruikers met schrijfrechten kunnen gewone branches hernoemen; voor het hernoemen van de default branch of een beschermde branch zijn adminrechten nodig, en rulesets van de organisatie kunnen dat verder aanscherpen.
Namen vermijden die later problemen geven
Houd het bij kleine letters, cijfers, koppeltekens en schuine strepen om te groeperen, zoals fix/login-timeout. Git weigert namen met spaties, twee punten achter elkaar, een punt of schuine streep aan het eind, een koppelteken aan het begin, of een van de tekens ~ ^ : ? * [ en backslash.
Volledig hernoemen, van begin tot eind
Een gepushte branch overal hernoemen
Hernoemt lokaal, publiceert de nieuwe naam met tracking en verwijdert dan de oude remote branch.
Wat teamgenoten uitvoeren na een hernoeming op GitHub
Dit zijn de stappen die GitHub noemt om een bestaande clone bij te werken, met het optioneel opruimen van verouderde remote branches.
Builder voor hernoemcommando's
Huidige branchnaam
Nieuwe branchnaam
Remote
Ik sta nu op deze branch
De branch bestaat op de remote
Uw commando's
Teamgenoten voeren uit
Niets door te geven aan teamgenoten: de branch is nooit gepusht.
Dat is geen geldige branchnaam. Bekijk de naamregels verderop op de pagina.