Cómo eliminar una rama Git

Cómo eliminar una rama Git
Crear ramas en git es fácil. Se considera una de las mejores características de Git. Sin embargo, debido a la presencia de repositorios remotos y locales, la eliminación de ramas puede volverse un poco confusa.

En esta lección, haremos lo siguiente:

  • Crear un repositorio remoto
  • Crear una copia local del repositorio remoto
  • Crear dos ramas en la copia local
  • Empuje una rama al repositorio remoto
  • Eliminar ramas locales
  • Eliminar ramas remotas

La lección debe darle una comprensión general del proceso de creación y eliminación de la rama, por lo que tiene un buen comando sobre los pasos necesarios cuando necesita eliminar una rama local o remota.

Empecemos.

1. Creación de un repositorio remoto

Creemos una carpeta llamada Proyecto.git e inicialice para ser el repositorio remoto:

Proyecto de $ Mkdir.git
Proyecto de $ CD.git
$ git init -bare

Repositorio de git vacío inicializado en/usuarios/zak/_work/aprendizaje/git_delete_branch/proyecto.git/

2. Creación de una copia local del repositorio remoto

En una nueva ubicación, creemos una copia local llamada Project_Local del repositorio remoto utilizando el comando clon.

Nota: Si está trabajando con GitHub o Bitbucket, seguirá el mismo proceso para clonar el repositorio. En ese caso, tendrá un enlace SSH en lugar de la ruta de archivo completa utilizada aquí.

$ Git Clone/Users/Zak/_Work/Learngit/Git_Delete_Branch/Project.git Project_Local
Clonarse en 'Project_Local' ..
Advertencia: parece haber clonado un repositorio vacío.
hecho.

3. Creación de ramas dentro de la copia local

Primero agregemos un archivo a la copia local y luego lo presionemos al repositorio remoto:

$ CD Project_Local
$ Touch ReadMe.TXT
$ git add -a
$ git commit -m "inicializando el módulo"
[Maestro (Root-Commit) 81EB2A3] Inicializando el módulo
1 archivo cambiado, 0 inserciones (+), 0 deleciones (-)
Crear modo 100644 Readme.TXT
$ git push origin maestro
Contando objetos: 3, hecho.
Objetos de escritura: 100% (3/3), 221 bytes | 0 bytes/s, hecho.
Total 3 (Delta 0), reutilizado 0 (Delta 0)
A/users/zak/_work/aprendizaje/git_delete_branch/proyecto.git
* [nueva rama] maestro -> maestro

En los comandos anteriores, creamos un archivo llamado ReadMe.txt, lo agregó a la copia local, la comprometió a la copia local y luego empujó los cambios al repositorio remoto o la rama maestra de Origin.

Si revisa las ramas, verá la rama maestra en la copia local:

$ GIT Branch
* maestro

Si revisa las ramas remotas, verá la rama maestra allí también:

$ git rama -r
origen/maestro

Sugerencia: puede usar la opción '-A' para ver todas las ramas en repositorios locales y remotos juntos.

$ git rama -a
* maestro
remotos/origen/maestro

Creemos dos ramas llamadas B1 y B2 desde la rama maestra:

$ git rama b1
$ git rama b2

Verifiquemos si se crearon las ramas:

$ GIT Branch
B1
b2
* maestro

Ahora vamos a hacer algunas modificaciones a las ramas:

$ git checkout b1
Cambiado a la rama 'b1'
$ touch rama1.TXT
$ git add -a
$ Git Commit -M "Modificación de rama1"
[B1 A2F488E] Modificación de la Rama1
1 archivo cambiado, 0 inserciones (+), 0 deleciones (-)
Crear modo 100644 rama1.TXT
$ git checkout b2
Cambiado a la rama 'b2'
$ touch rama2.TXT
$ git add -a
$ Git Commit -M "Modificación de rama2"
[B2 2ABB723] Modificación de rama2
1 archivo cambiado, 0 inserciones (+), 0 deleciones (-)
Crear modo 100644 Branch2.TXT

Vamos a ver los estados de rama local y remoto:

$ GIT Branch
B1
* B2
maestro
$ git rama -r
origen/maestro

Podemos ver localmente tenemos tres ramas Master, B1 y B2. Pero solo tenemos la rama maestra en el repositorio remoto.

4. Empujar ramas al repositorio remoto

Empujemos la rama B1 al repositorio remoto:

$ git push origen b1
Contando objetos: 2, hecho.
Compresión delta utilizando hasta 4 hilos.
Objetos de comprimir: 100% (2/2), hecho.
Escribir objetos: 100% (2/2), 249 bytes | 0 bytes/s, hecho.
Total 2 (Delta 0), reutilizado 0 (Delta 0)
A/users/zakh/_work/aprendizaje/git_delete_branch/proyecto.git
* [nueva rama] B1 -> B1

Puede consultar los estados de rama local y remoto:

$ GIT Branch
B1
* B2
maestro
$ git rama -r
origen/B1
origen/maestro

De los estados de rama anteriores, podemos ver que la rama B1 también está disponible de forma remota.

5. Eliminar ramas localmente

Puede eliminar ramas localmente con la opción -d o -d.

Git Branch -d

Primero registremos en la rama maestra, para que podamos eliminar las ramas B1 y B2.

$ git checkout maestro
Cambio a la rama 'maestro'
Su rama está actualizada con 'Origin/Master'.

Probemos primero la opción -d para eliminar la rama B1:

$ git rama -d b1
Error: la rama 'B1' no está completamente fusionada.
Si está seguro de que desea eliminarlo, ejecute 'Git Branch -d B1'.

El error le dice que debe fusionar los cambios de la rama B1. Esta es una salvaguardia, por lo que no pierde por error su trabajo en ramas. Puede usar la opción -d para forzar la fusión de la fusión. Pero en este caso, fusionemos los cambios de B1 y B2 a Master y lo empujemos al repositorio remoto.

$ Git Merge B1
Actualización 81EB2A3 ... A2F488E
Avance rápido
rama1.txt | 0
1 archivo cambiado, 0 inserciones (+), 0 deleciones (-)
Crear modo 100644 rama1.TXT
$ git fusion b2
Fusionar hecha por la estrategia 'recursiva'.
rama2.txt | 0
1 archivo cambiado, 0 inserciones (+), 0 deleciones (-)
Crear modo 100644 Branch2.TXT
$ git push origin maestro
Contando objetos: 4, hecho.
Compresión delta utilizando hasta 4 hilos.
Objetos de comprimir: 100% (4/4), hecho.
Objetos de escritura: 100% (4/4), 454 bytes | 0 bytes/s, hecho.
Total 4 (delta 1), reutilizado 0 (Delta 0)
A/users/zak/_work/aprendizaje/git_delete_branch/proyecto.git
81EB2A3 ... 34DB496 Master -> Maestro

Ahora intente eliminar las ramas nuevamente:

$ GIT Branch
B1
b2
* maestro
$ git rama -d b1
Rama B1 eliminada (fue A2F488E).
$ git rama -d b2
Rama B2 eliminada (fue 2ABB723).
$ GIT Branch
* maestro

Ha eliminado con éxito las ramas B1 y B2 localmente.

6. Eliminar ramas remotas

Cuando revisa las ramas remotas, todavía ve B1 presente:

$ git rama -r
origen/B1
origen/maestro

Puede usar el siguiente comando para eliminar una rama remota:

Git Push --borrar

Para que pueda eliminar la rama B1 remota con la siguiente:

$ Git Push Origin - -Delete B1
A/users/zakh_eecs/_work/aprendizaje/git_delete_branch/proyecto.git
- [eliminado] B1

Ahora, si revisa sus ramas remotas, ya no debería ver B1:

$ git rama -r
origen/maestro

Felicidades! Ha eliminado con éxito todas las ramas que creó. Practica hacer más ramas y eliminarlas para dominar el proceso de eliminación de ramas Git.

Estudio adicional:

  • https: // git-scm.com/book/en/v1/git-rama-what-a-branch-is
  • https: // git-scm.com/book/en/v2/git-rama-ramas-en-a-nutshell
  • https: // git-scm.com/book/en/v2/git-rama de ramificación básica