Me ha cambiado el nombre de mi sucursal local utilizando

git branch -m oldname newname

pero esto sólo cambia el nombre de la versión local de la rama. ¿Cómo puedo cambiar el nombre en github?

  • posibles duplicados de git: cambiar el nombre de la rama remota
  • Has comprobado en el administrador de configuración? Mi actual proyecto en github no tiene ramas, pero usted puede cambiar el nombre de la repo de allí, así que yo creo que podría cambiar el nombre de las ramas así.
  • No, usted no puede cambiar el nombre de una rama de Git desde el sitio de GitHub.
InformationsquelleAutor enchance | 2012-03-01

11 Comentarios

  1. 272

    Como se ha mencionado, eliminar el antiguo en Github & re-inserción, a pesar de los comandos utilizados son un poco más detallado de lo necesario:

    git push origin :name_of_the_old_branch_on_github
    git push origin new_name_of_the_branch_that_is_local
    

    Simple. La disección de los comandos un poco, el comando git push es esencialmente:

    git push <remote> <local_branch>:<remote_branch>
    

    Así que haciendo un empuje sin local_branch especificado en esencia significa «tomar nada de mi repositorio local, y hacer que la rama remota». Siempre he pensado que esto sea completamente desacoplados, pero es la manera en que se hace.

    Edición: Como de Git 1.7 hay una sintaxis alternativa para la eliminación de una rama remota:

    git push origin --delete name_of_the_remote_branch
    

    Edición: Como se ha mencionado por @vacío.puntero en los comentarios

    Tenga en cuenta que usted puede combinar el empuje 2 operaciones:

    git push origin :old_branch new_branch

    Tanto se elimina la antigua rama y empuje el nuevo.

    Esto puede ser convertido en un simple alias que toma el control remoto original de la rama y el nuevo nombre de la sucursal como de los 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 el shell de comandos eran problemáticos en los mayores (pre 2.8?) versiones de git, por lo que el alias podría variar de acuerdo a la versión git. Ver esta discusión para más detalles.

    • Tenga en cuenta que usted puede combinar el empuje 2 operaciones: git push origin :old_branch new_branch. Con ello se elimina la antigua rama y empuje el nuevo.
    • ¿Hay alguna razón por la nueva rama no puede ser empujado antes de eliminar la antigua? Yo personalmente prefiero los procesos en donde la operación de eliminación que sucede después de la operación es exitosa, en caso de que algo va mal.
    • Muy buena pregunta, y sí, usted tiene que eliminar la antigua filial primera (de lo contrario va a fallar ya que no es un FF de actualización). Si te preocupa, a pesar de que sólo se puede crear una copia de la antigua rama antes de comenzar.
    • No funciona. Simplemente poner la rama de vuelta en Github con su antiguo nombre.
    • parece que funciona para mí, ¿podría ser más específico?
    • 1. git branch -m new_branch (cambiar el nombre de old_branch a new_branch) 2. git commit -m 'msg', 3. git push 4. Mmm, old_branch se muestra en Github, Google pregunta y me inclino a tu respuesta 5. git push origin :old_branch (lo dice eliminados) 6. git push origin new_branch… completa, a continuación, dice * [new branch] new_branch -> old_branch. Volver a Github y old_branch muestra de nuevo. Si elimino en Github interfaz de usuario web, tengo la opción de «Restaurar», por lo que parece empujar el new_branch se acaba de restaurar.
    • Si yo sería la eliminación de la antigua rama y hacer una nueva rama, no se que también se puede hacer de múltiples revisiones en el mando a distancia?
    • No, No es el Mercurial, haciendo una rama no introducir un nuevo commit.
    • Tenga en cuenta que esta es esencialmente la creación de una nueva sucursal con el mismo comete. Por ejemplo, si usted tiene un abrir pull request con la antigua rama, usted tendrá que hacer el de la nueva rama.
    • Una cosa a tener en cuenta es que al cambiar el nombre de la rama, cualquier tire de solicitudes que se han abierto en contra de que tire de la solicitud será automáticamente cerrado. Tuvimos que cambiar el nombre de la rama de nuevo y, a continuación, vuelva a abrir manualmente todos los pull requests….

  2. 14

    Siguientes comandos trabajado 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
    
  3. 13

    Acaba de quitar la antigua rama y crear uno nuevo.

    Ejemplo (el único cambio de nombre de la sucursal remota):

    git push origin :refs/heads/oldname
    git push origin newname:refs/heads/newname
    

    Probablemente también debería cambiar el nombre de la sucursal, y cambiar la configuración de dónde push/pull.

    • No debería el 2º comando git push origin newname:refs/heads/newname ? maestro y newname no puede apuntar a la misma revisión.
    • «maestro» es sólo como ejemplo, va a cambiar ahora.
    • Tal vez el orden de los dos comandos debe ser a la inversa (es decir, cargar el nuevo nombre en primer lugar, eliminar de edad después de que)
  4. 10

    He encontrado 3 comando de cómo puede cambiar su git nombre de la sucursal, y estos comandos son la manera más rápida de hacer que

    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 usted necesita el paso-por-paso puede leer este gran artículo

    Cómo cambiar el nombre de Git Local y Remoto Ramas

  5. 1

    Aquí es lo que funcionó para mí:

    1.) Crear la nueva rama:
    git push github newname :refs/heads/newname

    2.) En el sitio de github, ir a ajustes y cambiar el valor Predeterminado de la rama newname

    3.) Borrar el oldname
    git push github-eliminar oldname

  6. 1

    Este artículo se muestra cómo hacer que es muy fácil.

    1. Para cambiar el nombre de un local de Git branch, podemos utilizar el Git branch-m de comandos para modificar el nombre de:

    git branch -m feature1 feature2

    2. Si usted está buscando el comando para cambiar el nombre de un remoto Git branch, esto es»

    git push -u origin feature2:feature3

    Compruebe que no tienen etiquetas en la rama antes de hacer esto. Usted puede hacer eso con git tag.

  7. 1

    En mi caso, necesitaba un comando adicional

    git branch --unset-upstream

    para conseguir mis cambiado el nombre de la rama de empujar hacia arriba para origin newname.

    (Por la facilidad de escribir), lo primero que git checkout oldname.

    A continuación, ejecute el siguiente:

    git branch -m newname

    git push origin :oldname o git push origin --delete oldname

    git branch --unset-upstream

    git push -u origin newname o git push origin newname

    Este paso adicional puede ser necesario solamente porque yo (tienden a) la instalación de un seguimiento remoto en mi sucursales a través de git push -u origin oldname. De esta manera, cuando he oldname desprotegido, me posteriormente sólo tipo de necesidad de git push en lugar de git push origin oldname

    Si hago NO utilice el comando git branch --unset-upstream antes de git push origin newbranch, git re-crea oldbranch y empuja newbranch a origin oldbranch — derrotar a mi intención.

  8. 0
    1. Descargar Atlassian SourceTree (gratis).
    2. Importar su local clon del repositorio.
    3. Haga clic en la rama para cambiar el nombre, en la barra lateral. Seleccione «cambiar el nombre de rama…» desde el menú de contexto, y cambiarle el nombre.
    4. De inserción a origen.
    • Gracias, pero me tuve que cambiar a la rama, así como la importación de ella.
    • Muy fácil. Gracias
  9. 0

    Otra forma es cambiar el nombre de los archivos siguientes:

    1. navegar por el directorio de su proyecto
    2. cambiar el nombre de .git/refs/head/[branch-name] a .git/refs/head/new-branch-name
    3. cambiar el nombre de .git/refs/remotes/[all-remote-names]/[branch-name] a .git/refs/remotes/[all-remote-names]/new-branch-name

    Cambiar el nombre de head & controles remotos tanto en su PC local y sobre los orígenes(s)/servidor remoto(s)

    Rama es ahora con el nombre de (local y remoto!)


    Atención

    Si su actual rama-nombre contiene barras (/) git crear los directorios como:

    rama actual-nombre: "awe/some/branch"

    • .git/refs/head/awe/some/branch
    • .git/refs/remotes/[all-remote-names]/awe/some/branch

    deseo de rama-nombre: "new-branch-name"

    1. navegar por el directorio de su proyecto
    2. copia de la branch archivo de .git/refs/*/awe/some/
    3. ponerlo en .git/refs/head/.
    4. copia de la branch archivo de todos .git/refs/remotes/*/awe/some/
    5. ponerlos en .git/refs/remotes/*/.
    6. cambiar el nombre de todos los opied branch archivos a new-branch-name.
    7. comprobar si la estructura de directorios y archivos ahora se parece a esto:
      • .git/refs/head/new-branch-name
      • .git/refs/remotes/[all-remote-names]/new-branch-name
    8. hacer lo mismo en todos sus remotos orígenes/servidores (si existe)
      • info: en remoto de los servidores normalmente, no hay ningún refs/remotes/* directorios porque ya estás en el server remoto 😉 (bueno, tal vez en la avanzada de git configuraciones, esto podría ser posible, pero nunca he visto eso)

    Rama es ahora con el nombre de awe/some/branch a new-branch-name (local y remoto!)

    Directorios en rama-nombre fue quitada.


    Info: de Esta manera quizás no sea el mejor, pero todavía funciona para las personas que tienen problemas con las otras formas de

  10. 0

    Los siguientes comandos cambiar el nombre de la sucursal local, eliminar la antigua rama en el lugar remoto y empuje la nueva sucursal, establecimiento de la sucursal local para seguir el nuevo mando a distancia:

    git branch -m old_branch new_branch
    git push origin :old_branch
    git push --set-upstream origin new_branch
    
    • Aunque el fragmento de código podría resolver el problema, usted debe describir lo que el propósito de su código (cómo se resuelve el problema). Además, es posible que desee comprobar stackoverflow.com/help/how-to-answer

Dejar respuesta

Please enter your comment!
Please enter your name here