Cambiar el nombre de una sucursal en GitHub
Acabo de cambiar el nombre de mi sucursal local usando
git branch -m oldname newname
pero esto sólo cambia el nombre de la versión local de la sucursal. ¿Cómo puedo cambiar el nombre del que está en GitHub?
Como se mencionó, elimine el anterior en GitHub y vuelva a enviarlo, aunque los comandos utilizados son un poco más detallados de lo necesario:
git push origin :name_of_the_old_branch_on_github
git push origin new_name_of_the_branch_that_is_local
Analizando un poco los comandos, el git push
comando es esencialmente:
git push <remote> <local_branch>:<remote_branch>
Entonces, hacer un envío sin local_branch especificado significa esencialmente "no tomar nada de mi repositorio local y convertirlo en la rama remota". Siempre pensé que esto era completamente torpe, pero así es como se hace.
A partir de Git 1.7 existe una sintaxis alternativa para eliminar una rama remota:
git push origin --delete name_of_the_remote_branch
Como lo menciona @void.pointer en los comentarios
Tenga en cuenta que puede combinar las 2 operaciones de inserción:
git push origin :old_branch new_branch
Esto eliminará la rama anterior e impulsará la nueva.
Esto se puede convertir en un alias simple que toma la rama remota original y el nombre de la nueva rama como argumentos, en ~/.gitconfig
:
[alias]
branchm = "!git branch -m $2 $3 && git push $1 :$2 $3 -u #"
Uso:
git branchm origin old_branch new_branch
Tenga en cuenta que los argumentos posicionales en los comandos de shell eran problemáticos en versiones anteriores (¿anteriores a la 2.8?) de Git, por lo que el alias puede variar según la versión de Git. Vea esta discusión para más detalles.
Los siguientes comandos funcionaron para mí:
git push origin :old-name-of-branch-on-github
git branch -m old-name-of-branch-on-github new-name-for-branch-you-want
git push origin new-name-for-branch-you-want