Eliminar una sucursal local con Git


135

Busqué en Google y hay varios hilos muy largos sobre este tema y ninguno de ellos parece ayudar. Creo que estoy haciendo algo mal. Tengo una rama llamada Test_Branch. Cuando intento eliminarlo con el método recomendado, aparece el siguiente error:

No se puede eliminar la rama 'Test_Branch' desprotegida en '[ubicación del directorio]'.

No obtengo otra información además de eso. Puedo volar fácilmente la rama remota, pero la rama local no desaparecerá.


Por cierto, soy totalmente nuevo en Git. Solo he estado usando los últimos días. Tomé varios cursos en línea y leí algunos libros y las respuestas tampoco parecen estar allí.
Bob Wakefield

Si ejecutas git branch, ¿qué dice?
coredump

19
En la imagen, esto es lo que está sucediendo: publicdomainpictures.net/pictures/10000/velka/…
coredump

git branch me da * Test_Branch master
Bob Wakefield

La estrella te dice en qué rama te encuentras actualmente, esto confirma lo que dicen las respuestas
coredump

Respuestas:


245

Cambie a otra rama y elimine Test_Branch, de la siguiente manera:

$ git checkout master
$ git branch -d Test_Branch

Si el comando anterior le da un error, The branch 'Test_Branch' is not fully merged. If you are sure you want to delete ity aún desea eliminarlo, puede forzarlo a usarlo en -Dlugar de-d , como:

$ git branch -D Test_Branch

Para eliminar también Test_Branchdel control remoto, ejecute:

git push origin --delete Test_Branch

34
Cambiar ramas fue lo que me atrapó, ¡buena captura! No puede eliminar la rama si está activo en ella. ;-)
SliverNinja - MSFT

2
Si intentas algunos pagos diferentes y sigues recibiendo el mismo mensaje, mira la salida de git status, o git branch; si está cambiando el nombre de Test_branch, simplemente verificar una rama / confirmación diferente no solucionará esto. En cambio, git rebase --abortentonces git checkout --detachy finalmentegit branch -D Test_branch
droide

3
Evidencia adicional de que git significa "git es terrible". Cuanto más lo uso, más de estos aros ridículos tienes que atravesar. Especialmente porque probablemente quieras volver a la misma rama.
user949300

¿Y qué pasa si alguien recibe esto a cambio, cuando intenta cambiar de sucursal? error: you need to resolve your current index firsty solo quieren irse? EDITAR - Solución: git reset --; git checkout -D [branch_name]Uf ..
Paul

21

Probablemente haya desprotegido Test_Branch, y no puede eliminarlo mientras sea su rama actual. Echa un vistazo a una rama diferente y luego intenta eliminar Test_Branch.


14

Me encontré con esto hoy y cambiar a otra rama no ayudó. Resultó que de alguna manera la información de mi árbol de trabajo se había dañado y había un árbol de trabajo con la misma ruta de carpeta que mi directorio de trabajo con un HEADseñalador en la rama ( git worktree list). Eliminé la .git/worktree/carpeta que lo hacía referencia y git branch -dfuncionó.


3

Si ha creado múltiples árboles de trabajo con git worktree , deberá ejecutar git pruneantes de poder eliminar la rama


3
más específicamente, necesitará usargit worktree prune
Sergioet

pero lea lo que hace git prune, primero - podría conducir a la pérdida de datos
sesquipedalias

1

Esto funcionó para mí ...
He eliminado las carpetas allí en la carpeta .git / worktrees y luego intenté "git delete -D branch-name".


1

En mi caso, hubo cambios no confirmados de la rama anterior persistente. Usé los siguientes comandos y luego eliminé trabajado.

git checkout *

git checkout master

git branch -D


0

Al igual que otros mencionados, no puede eliminar la rama actual en la que está trabajando.

En mi caso, seleccioné "Test_Branch" en Visual Studio e intenté eliminar "Test_Branch" de Sourcetree (Git GUI). Y se estaba poniendo debajo del mensaje de error.

No se puede eliminar la rama 'Test_Branch' desprotegida en '[ubicación del directorio]'.

Cambió a una rama diferente en Visual Studio y pude eliminar "Test_Branch" de Sourcetree.

Espero que esto ayude a alguien que está usando Visual Studio y Sourcetree .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.