Buscar..


Sintaxis

  • git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
  • git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
  • git branch --unset-upstream [<branchname>]
  • git branch (-m | -M) [<oldbranch>] <newbranch>
  • git branch (-d | -D) [-r] <branchname>…​
  • git branch --edit-description [<branchname>]
  • git branch [--color[=<when>] | --no-color] [-r | -a] [--list] [-v [--abbrev=<length> | --no-abbrev]] [--column[=<options>] | --no-column] [(--merged | --no-merged | --contains) [<commit>]] [--sort=<key>] [--points-at <object>] [<pattern>…​]

Parámetros

Parámetro Detalles
-d, --delete Eliminar una rama. La rama debe estar completamente fusionada en su rama en sentido ascendente o en HEAD si no se configuró en sentido ascendente con --track o --set-upstream
-RE Atajo para --delete --force
-m, --move Mover / renombrar una rama y el correspondiente inicio de sesión
-METRO Atajo para - --move --force
-r, --remotes Listar o eliminar (si se usa con -d) las ramas de seguimiento remoto
-a, --todos Listar tanto las sucursales de seguimiento remoto como las sucursales locales
--lista Activar el modo de lista. git branch <pattern> intentaría crear una rama, usa git branch --list <pattern> para enumerar ramas coincidentes
--estado arriba Si la rama especificada aún no existe o si se ha dado --force , actúa exactamente como --track . De lo contrario, configura la configuración como --track lo haría al crear la rama, excepto que donde la rama apunta a no se cambia

Observaciones

Cada repositorio git tiene una o más ramas . Una rama es una referencia con nombre a la HEAD de una secuencia de confirmaciones.

Un repositorio de git tiene una rama actual (indicada por un * en la lista de nombres de rama impresa por el comando de git branch ), siempre que cree una nueva confirmación con el comando de git commit , su nueva confirmación se convierte en la HEAD de la rama actual, y El HEAD anterior se convierte en el padre del nuevo commit.

Una nueva rama tendrá la misma HEAD que la rama a partir de la cual se creó hasta que algo se confíe a la nueva rama.

Listado de sucursales

Git proporciona múltiples comandos para listar ramas. Todos los comandos utilizan la función de git branch de git branch , que proporcionará una lista de ciertas ramas, según las opciones que se pongan en la línea de comandos. Si es posible, Git indicará la rama seleccionada actualmente con una estrella al lado.

Gol Mando
Lista de sucursales locales git branch
Lista de ramas locales verbosas git branch -v
Lista de sucursales remotas y locales git branch -a o git branch --all
Lista de sucursales remotas y locales (verbosas) git branch -av
Lista de ramas remotas git branch -r
Lista de sucursales remotas con el último commit git branch -rv
Lista de ramas fusionadas git branch --merged
Lista de ramas sin fusionar git branch --no-merged
Lista de ramas que contienen commit git branch --contains [<commit>]

Notas :

  • Agregar una v adicional a -v por ejemplo, $ git branch -avv o $ git branch -vv también imprimirá el nombre de la rama ascendente.
  • Las ramas mostradas en color rojo son ramas remotas

Creando y revisando nuevas sucursales.

Para crear una nueva rama, mientras permanece en la rama actual, use:

git branch <name>

En general, el nombre de la sucursal no debe contener espacios y está sujeto a otras especificaciones enumeradas aquí . Para cambiar a una rama existente:

git checkout <name>

Para crear una nueva rama y cambiar a ella:

git checkout -b <name>

Para crear una rama en un punto que no sea la última confirmación de la rama actual (también conocida como HEAD), use uno de estos comandos:

git branch <name> [<start-point>]
git checkout -b <name> [<start-point>]

El <start-point> puede ser cualquier revisión conocida por git (por ejemplo, otro nombre de rama, SHA de confirmación o una referencia simbólica como HEAD o un nombre de etiqueta):

git checkout -b <name> some_other_branch
git checkout -b <name> af295
git checkout -b <name> HEAD~5
git checkout -b <name> v1.0.5

Para crear una rama desde una rama remota (el <remote_name> predeterminado es origen):

git branch <name> <remote_name>/<branch_name>
git checkout -b <name> <remote_name>/<branch_name>

Si el nombre de una rama dada solo se encuentra en un control remoto, simplemente puede usar

git checkout -b <branch_name>

que es equivalente a

git checkout -b <branch_name> <remote_name>/<branch_name>

A veces es posible que deba mover varios de sus compromisos recientes a una nueva sucursal. Esto se puede lograr mediante la bifurcación y el "retroceso", así:

git branch <new_name>
git reset --hard HEAD~2 # Go back 2 commits, you will lose uncommitted work.
git checkout <new_name>

Aquí hay una explicación ilustrativa de esta técnica:

 Initial state       After git branch <new_name>    After git reset --hard HEAD~2
                             newBranch                        newBranch
                                 ↓                                ↓
A-B-C-D-E (HEAD)         A-B-C-D-E (HEAD)                 A-B-C-D-E (HEAD)
        ↑                        ↑                            ↑
      master                   master                       master

Eliminar una rama localmente

$ git branch -d dev

Elimina la rama llamada dev si sus cambios se combinan con otra rama y no se perderán. Si la rama dev contiene cambios que aún no se han fusionado y que se perderían, git branch -d fallará:

$ git branch -d dev
error: The branch 'dev' is not fully merged.
If you are sure you want to delete it, run 'git branch -D dev'.

Por el mensaje de advertencia, puede forzar la eliminación de la rama (y perder los cambios no combinados en esa rama) utilizando el indicador -D :

$ git branch -D dev

Echa un vistazo a una nueva rama de seguimiento de una rama remota

Hay tres formas de crear una nueva feature rama que rastrea el origin/feature rama remota:

  • git checkout --track -b feature origin/feature ,
  • git checkout -t origin/feature ,
  • git checkout feature : suponiendo que no hay una rama de feature local y que solo hay un control remoto con la rama de feature .

Para configurar en sentido ascendente para rastrear la rama remota, escriba:

  • git branch --set-upstream-to=<remote>/<branch> <branch>
  • git branch -u <remote>/<branch> <branch>

dónde:

  • <remote> puede ser: origin , develop o el creado por el usuario,
  • <branch> es la rama del usuario para rastrear en remoto.

Para verificar qué sucursales remotas están siguiendo tus sucursales locales:

  • git branch -vv

Renombrar una rama

Renombra la rama que has desprotegido:

git branch -m new_branch_name

Renombrar otra rama:

git branch -m branch_you_want_to_rename new_branch_name

Sobrescriba el archivo único en el directorio de trabajo actual con el mismo de otra rama

El archivo desprotegido sobrescribirá los cambios aún no comprometidos que hizo en este archivo.

Este comando verificará el archivo file.example (que se encuentra en la path/to/ del directorio path/to/ ) y sobrescribirá los cambios que haya realizado en este archivo.

git checkout some-branch path/to/file

some-branch puede ser cualquier cosa de tree-ish conocida por git (consulte Selección de revisión y gitrevisions para obtener más detalles)


Debe agregar -- antes de la ruta si su archivo podría confundirse con un archivo (opcional de lo contrario). No se pueden proporcionar más opciones después de la -- .

git checkout some-branch -- some-file

El segundo some-file es un archivo en este ejemplo.

Eliminar una rama remota

Para eliminar una rama en el repositorio remoto de origin , puede usar para Git versión 1.5.0 y más reciente

git push origin :<branchName>

y a partir de la versión 1.7.0 de Git, puede eliminar una rama remota utilizando

git push origin --delete <branchName>

Para eliminar una rama de seguimiento remoto local:

git branch --delete --remotes <remote>/<branch>
git branch -dr <remote>/<branch> # Shorter

git fetch <remote> --prune # Delete multiple obsolete tracking branches
git fetch <remote> -p      # Shorter

Para eliminar una rama localmente. Tenga en cuenta que esto no eliminará la rama si tiene cambios no combinados:

git branch -d <branchName>

Para eliminar una rama, incluso si tiene cambios no combinados:

git branch -D <branchName>

Crear una rama huérfana (es decir, una rama sin compromiso principal)

git checkout --orphan new-orphan-branch

El primer compromiso realizado en esta nueva rama no tendrá padres y será la raíz de una nueva historia totalmente desconectada de todas las otras ramas y compromisos.

fuente

Empuje la rama a control remoto

Utilice para enviar las confirmaciones realizadas en su sucursal local a un repositorio remoto.

El comando git push toma dos argumentos:

  • Un nombre remoto, por ejemplo, origin
  • Un nombre de rama, por ejemplo, master

Por ejemplo:

git push  <REMOTENAME> <BRANCHNAME>

Como ejemplo, normalmente ejecuta git push origin master para enviar sus cambios locales a su repositorio en línea.

El uso de -u (abreviatura de --set-upstream ) configurará la información de seguimiento durante la inserción.

git push -u <REMOTENAME> <BRANCHNAME>

De forma predeterminada, git empuja la rama local a una rama remota con el mismo nombre. Por ejemplo, si tiene una new-feature local llamada, si presiona la rama local, también se creará una new-feature rama remota. Si desea utilizar un nombre diferente para la rama remota, añada el nombre remoto después de que el nombre de la filial local, separados por : :

git push <REMOTENAME> <LOCALBRANCHNAME>:<REMOTEBRANCHNAME>

Mover la rama actual HEAD a una confirmación arbitraria

Una rama es solo un puntero a una confirmación, por lo que puede moverla libremente. Para hacer que la rama se refiera a la confirmación aabbcc , aabbcc el comando

git reset --hard aabbcc

Tenga en cuenta que esto sobrescribirá el compromiso actual de su sucursal y, como tal, su historial completo. Podría perder algo de trabajo al emitir este comando. Si ese es el caso, puede utilizar el proceso de recuperación para recuperar las confirmaciones perdidas. Se puede recomendar que ejecute este comando en una nueva rama en lugar de la actual.

Sin embargo, este comando puede ser particularmente útil cuando se rebasa o se realizan otras grandes modificaciones en el historial.

Cambio rápido a la rama anterior.

Puedes cambiar rápidamente a la rama anterior usando

git checkout -

Buscando en las ramas

Para enumerar las sucursales locales que contienen una confirmación o etiqueta específica

git branch --contains <commit>

Para enumerar sucursales locales y remotas que contienen una confirmación o etiqueta específica

git branch -a --contains <commit>


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow