¿Has verificado la configuración de administrador? Mi proyecto actual en github no tiene ramas, pero puede cambiar el nombre del repositorio allí, así que creo que también podría cambiar el nombre de las ramas.
evanmcdonnal
12
@evanmcdonnal No, no puede cambiar el nombre de una sucursal de Git desde el sitio de GitHub.
Andrew Marshall
Las respuestas a esta pregunta son casi universalmente incorrectas. La pregunta no es cómo cambiar el nombre de una rama git, es cómo cambiar el nombre de una rama github . Muchas cosas en github están vinculadas a una rama, lo que significa que cualquier respuesta debe cubrir esas cosas. Por ejemplo, cambiar el nombre de master a main
gman
@gman Por lo que vale, parece que estas respuestas respondieron al espíritu de la pregunta del OP. Es posible que la pregunta del OP no se haya redactado perfectamente, desde un punto de vista técnicamente exigente, o el problema relevante que está investigando actualmente. Pero entonces, esta pregunta no proviene de un fondo técnico profundo de git o GitHub. Desde esta perspectiva, uno puede considerar esto como una pregunta "principiante" o elemental. Como tal, está redactado y respondido adecuadamente para esta audiencia. Frustrante, claro, pero creo que esta Q, estas Respuestas son apropiadas / relevantes, especialmente para las Q de uso de BLM git / Hub previas.
SherylHohman
Respuestas:
309
Como se mencionó, elimine el antiguo en Github y vuelva a presionar, aunque los comandos utilizados son un poco más detallados de lo necesario:
Sencillo. Diseccionando un poco los comandos, el comando git push es esencialmente:
git push <remote> <local_branch>:<remote_branch>
Por lo tanto, hacer un push sin local_branch especificado esencialmente significa "no tomar nada de mi repositorio local y convertirlo en la rama remota". Siempre he pensado que esto es completamente grosero, pero así es como se hace.
Editar: a partir de Git 1.7 hay una sintaxis alternativa para eliminar una rama remota:
Tenga en cuenta que los argumentos posicionales en los comandos de shell son problemáticos en versiones anteriores (anteriores a 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.
Tenga en cuenta que puede combinar las operaciones de empuje 2: git push origin :old_branch new_branch. Esto eliminará la rama anterior y empujará la nueva.
void.pointer
44
¿Hay alguna razón por la cual la nueva rama no se puede empujar antes de eliminar la anterior? Personalmente, prefiero los procesos donde la operación de eliminación ocurre después de que la operación de creación es exitosa, en caso de que algo salga mal.
jmort253
77
No funciona. Simplemente volverá a colocar la rama en Github con su antiguo nombre.
Geoff
1
@AdamParkin 1. git branch -m new_branch(cambie el nombre de old_branch a new_branch) 2. git commit -m 'msg', 3. git push4. Mhmm, old_branch aparece en Github, pregunta de Google y me llevan a su respuesta 5. git push origin :old_branch(dice que se eliminó) 6. git push origin new_branch... completa y luego dice * [new branch] new_branch -> old_branch. Vuelve a Github y old_branchvuelve a aparecer. Si elimino en la interfaz de usuario web de Github, tengo la opción de "Restaurar", por lo que parece que presionar new_branch es solo restaurar.
Kcvin
2
Una cosa a tener en cuenta es que cuando cambie el nombre de la sucursal, cualquier solicitud de extracción que tenga abierta contra esa solicitud de extracción se cerrará automáticamente. Tuvimos que cambiar el nombre de la sucursal y luego volver a abrir manualmente todas las solicitudes de extracción ...
Esta es la breve respuesta que funciona. Por cierto, el primer comando también se podría poner como el último en la respuesta.
Eric Wang
esta respuesta cubre git not github
gman
1
En realidad, acabo de hacer esto dos veces y funcionó en github.
Spozun
17
Encontré 3 comandos para cambiar el nombre de la rama de git, y estos comandos son una forma más rápida de hacerlo
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
Si necesita paso a paso, puede leer este gran artículo
git push --set-upstreames la parte más importante si cambia el nombre de la sucursal localmente usando la aplicación github antes de eliminar la sucursal remota.
Louis Yang
esta respuesta cubre git not github
gman
12
Simplemente elimine la rama anterior y cree una nueva.
Esto es para git y GitHub está bajo git, por lo que funcionará y funcionará conmigo y con los demás
Abdelrahman Mohamed
No funciona Prueba el primer y segundo paso git branch -m new-name && git push origin :master new-name. Fallará. Si esta respuesta es solo sobre git y no sobre github, entonces esta pregunta es un duplicado de varias otras preguntas y debe cerrarse. Si realmente se trata de github, entonces la respuesta debe cubrir github. Esta respuesta no.
Gman
6
Puede hacerlo sin terminal, solo necesita crear una rama con el nuevo nombre y eliminar el anterior. Puedes usar esta publicación para hacer eso.
Haga clic derecho en su rama para cambiar el nombre, en la barra lateral. Seleccione "Cambiar nombre de rama ..." en el menú contextual y cámbiele el nombre.
Gracias, pero tuve que cambiar a la sucursal e importarla.
Flash Sheridan
1
esta respuesta cubre git not github
gman
0
Este artículo muestra cómo hacerlo realmente fácil.
1. Para cambiar el nombre de una rama Git local, podemos usar el comando Git branch -m para modificar el nombre:
git branch -m feature1 feature2 2. Si solo está buscando el comando para cambiar el nombre de una rama Git remota, esta es "
git push -u origin feature2:feature3 Compruebe que no tiene etiquetas en la rama antes de hacer esto. Puede hacerlo con git tag.
haga lo mismo en todos sus orígenes / servidores remotos (si existe)
info : en servidores remotos generalmente no hay directorios refs / remotes / * porque ya estás en el servidor remoto;) (bueno, tal vez en configuraciones avanzadas de git podría ser posible, pero nunca he visto eso)
La rama ahora se renombra de awe/some/brancha new-branch-name(¡local y remoto!)
Se eliminaron los directorios en nombre de sucursal.
Información: esta manera puede no ser la mejor, pero aún funciona para personas que pueden tener problemas con las otras formas
Este paso adicional solo puede ser necesario porque (tiendo a) configurar el seguimiento remoto en mis sucursales a través de . De esta manera, cuando me he retirado, posteriormente solo necesito escribir en lugar degit push-uorigin oldnameoldnamegit pushgit push origin oldname
Si NO uso el comando git branch --unset-upstreamantes git push origin newbranch, git vuelve a crearoldbranch y empuja newbrancha origin oldbranch- derrotando mi intención.
@gman Point tomado. Mi solución usa git localmente para cambiar el nombre de una rama en GitHub, de forma remota, después de renombrarla en la copia local de git del repositorio de GitHub. Entonces, tal vez podría considerarse una solución especializada, para cuando desea utilizar la línea de comandos, en lugar de la interfaz del sitio web de GitHub, y tiene un clon local que también desea actualizar. Gracias por resaltar esta distinción y aclarar que esta respuesta es para un caso especial, en lugar de una solución general.
SherylHohman
El problema es que github vincula las características a las ramas. Intente renombrar master a main y sus instrucciones fallarán.
Gman
-1
Los siguientes comandos cambian el nombre de la rama localmente, eliminan la rama vieja en la ubicación remota y presionan la nueva rama, configurando la rama local para rastrear el nuevo control remoto:
Aunque su fragmento de código puede resolver el problema, debe describir cuál es el propósito de su código (cómo resuelve el problema). Además, es posible que desee consultar stackoverflow.com/help/how-to-answer
Ahmad F
esta respuesta cubre git not github
gman
-1
Tan simple como eso . Para cambiar el nombre de git branch localmente y de forma remota, use este fragmento (probado y funciona de maravilla):
Referencia de Git:
con una opción -m o -M , se le cambiará el nombre. Si tenía un reflog correspondiente, se renombra para que coincida, y se crea una entrada de reflog para recordar el cambio de nombre de la rama. Si existe, -M debe usarse para forzar el cambio de nombre.
Eliminar paso:
Referencia de Git:
git push origin: experimental Encuentre una referencia que coincida con la experimental en el repositorio de origen (por ejemplo, referencias / cabezas / experimental) y elimínela.
Actualización en el paso de repositorio remoto (referencia ascendente para el seguimiento):
Referencia de Git:
--set-upstream Para cada rama que esté actualizada o que se haya enviado correctamente, agregue la referencia de upstream (seguimiento), utilizada por git-pull [1] sin argumentos y otros comandos. Para obtener más información, consulte branch..merge en git-config [1].
En la rama git, ejecute git branch -m nombre_nuevo nombre_nuevo Esto modificará el nombre de la rama en su repositorio local git push origin: nombre_nuevo nombre_nuevo Esto empujará el nombre modificado a remoto y eliminará la rama antigua git push origin -u nombre_ nuevo Establece la rama local para rastrear rama remota Esto resuelve el problema
Respuestas:
Como se mencionó, elimine el antiguo en Github y vuelva a presionar, aunque los comandos utilizados son un poco más detallados de lo necesario:
Sencillo. Diseccionando un poco los comandos, el comando git push es esencialmente:
Por lo tanto, hacer un push sin local_branch especificado esencialmente significa "no tomar nada de mi repositorio local y convertirlo en la rama remota". Siempre he pensado que esto es completamente grosero, pero así es como se hace.
Editar: a partir de Git 1.7 hay una sintaxis alternativa para eliminar una rama remota:
Editar: según lo mencionado por @ void.pointer en los comentarios
Esto se puede convertir en un simple alias que toma la rama remota, original y el nuevo nombre de rama como argumentos, en
~/.gitconfig
:Uso:
Tenga en cuenta que los argumentos posicionales en los comandos de shell son problemáticos en versiones anteriores (anteriores a 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.
fuente
git push origin :old_branch new_branch
. Esto eliminará la rama anterior y empujará la nueva.git branch -m new_branch
(cambie el nombre de old_branch a new_branch) 2.git commit -m 'msg'
, 3.git push
4. Mhmm, old_branch aparece en Github, pregunta de Google y me llevan a su respuesta 5.git push origin :old_branch
(dice que se eliminó) 6.git push origin new_branch
... completa y luego dice* [new branch] new_branch -> old_branch
. Vuelve a Github yold_branch
vuelve a aparecer. Si elimino en la interfaz de usuario web de Github, tengo la opción de "Restaurar", por lo que parece que presionar new_branch es solo restaurar.Los siguientes comandos me funcionaron:
fuente
Encontré 3 comandos para cambiar el nombre de la rama de git, y estos comandos son una forma más rápida de hacerlo
Si necesita paso a paso, puede leer este gran artículo
Cómo cambiar el nombre de las ramas locales y remotas de Git
fuente
git push --set-upstream
es la parte más importante si cambia el nombre de la sucursal localmente usando la aplicación github antes de eliminar la sucursal remota.Simplemente elimine la rama anterior y cree una nueva.
Ejemplo (renombrar únicamente la rama remota):
Probablemente también debería cambiar el nombre de la sucursal local y cambiar la configuración de dónde empujar / tirar.
fuente
git push origin newname:refs/heads/newname
? master y newname pueden no apuntar a la misma confirmación.Renombrar sucursales en git local y remoto
1. Cambie el nombre de su sucursal local.
Si está en la rama que desea renombrar:
Si estás en una rama diferente:
2. Elimine la rama remota de nombre antiguo y presione la rama local de nombre nuevo.
3. Restablezca la rama ascendente para la rama local de nuevo nombre.
Cambie a la rama y luego:
Entonces la conclusión es
fuente
git branch -m new-name && git push origin :master new-name
. Fallará. Si esta respuesta es solo sobre git y no sobre github, entonces esta pregunta es un duplicado de varias otras preguntas y debe cerrarse. Si realmente se trata de github, entonces la respuesta debe cubrir github. Esta respuesta no.Puede hacerlo sin terminal, solo necesita crear una rama con el nuevo nombre y eliminar el anterior. Puedes usar esta publicación para hacer eso.
https://github.com/blog/1377-create-and-delete-branches
fuente
Esto es lo que funcionó para mí:
1.) Cree la nueva rama primero: git push github newname: refs / heads / newname
2.) En el sitio github, vaya a la configuración y cambie la rama predeterminada a newname
3.) Eliminar el antiguo nombre git push github --delete oldname
fuente
fuente
Este artículo muestra cómo hacerlo realmente fácil.
1. Para cambiar el nombre de una rama Git local, podemos usar el comando Git branch -m para modificar el nombre:
git branch -m feature1 feature2
2. Si solo está buscando el comando para cambiar el nombre de una rama Git remota, esta es "
git push -u origin feature2:feature3
Compruebe que no tiene etiquetas en la rama antes de hacer esto. Puede hacerlo con
git tag
.fuente
Otra forma es renombrar los siguientes archivos :
.git/refs/head/[branch-name]
a.git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/[branch-name]
a.git/refs/remotes/[all-remote-names]/new-branch-name
Cambie el nombre de cabezales y controles remotos tanto en su PC local como en los orígenes / servidores remotos
La rama ahora se renombra (¡local y remota!)
Atención
Si su nombre de rama actual contiene barras inclinadas (
/
), git creará los directorios así:nombre de sucursal actual:
"awe/some/branch"
.git/refs/head/awe/some/branch
.git/refs/remotes/[all-remote-names]/awe/some/branch
nombre de sucursal del deseo:
"new-branch-name"
branch
archivo de.git/refs/*/awe/some/
.git/refs/head/
.branch
archivo de todos.git/refs/remotes/*/awe/some/
.git/refs/remotes/*/
.branch
archivos optados anew-branch-name
..git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/new-branch-name
La rama ahora se renombra de
awe/some/branch
anew-branch-name
(¡local y remoto!)Se eliminaron los directorios en nombre de sucursal.
Información: esta manera puede no ser la mejor, pero aún funciona para personas que pueden tener problemas con las otras formas
fuente
En mi caso, necesitaba un comando adicional para que mi rama renombrada avanzara .
git branch --unset-upstream
origin newname
(Para facilitar la escritura), primero
git checkout oldname
.Luego ejecute lo siguiente:
git branch -m newname
git push origin :oldname
o ogit push origin --delete oldname
git branch --unset-upstream
git push -u origin newname
git push origin newname
Este paso adicional solo puede ser necesario porque (tiendo a) configurar el seguimiento remoto en mis sucursales a través de . De esta manera, cuando me he retirado, posteriormente solo necesito escribir en lugar de
git push
-u
origin oldname
oldname
git push
git push origin oldname
Si NO uso el comando
git branch --unset-upstream
antesgit push origin newbranch
, git vuelve a crearoldbranch
y empujanewbranch
aorigin oldbranch
- derrotando mi intención.fuente
Los siguientes comandos cambian el nombre de la rama localmente, eliminan la rama vieja en la ubicación remota y presionan la nueva rama, configurando la rama local para rastrear el nuevo control remoto:
fuente
Tan simple como eso . Para cambiar el nombre de git branch localmente y de forma remota, use este fragmento (probado y funciona de maravilla):
Explicación:
Cambiar nombre de paso:
Eliminar paso:
Actualización en el paso de repositorio remoto (referencia ascendente para el seguimiento):
fuente
3 pasos simples
cabeza de origen de empuje git
git branch -m nombre-rama-antiguo nombre-rama-nuevo
cabeza de origen de empuje git
fuente
En la rama git, ejecute git branch -m nombre_nuevo nombre_nuevo Esto modificará el nombre de la rama en su repositorio local git push origin: nombre_nuevo nombre_nuevo Esto empujará el nombre modificado a remoto y eliminará la rama antigua git push origin -u nombre_ nuevo Establece la rama local para rastrear rama remota Esto resuelve el problema
fuente