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á.

Bob Wakefield
fuente
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
Arpit Aggarwal
fuente
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.

Randy Leberknight
fuente
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ó.

jinxcat2008
fuente
3

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

dkniffin
fuente
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".

Vasu
fuente
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

Sankar Natarajan
fuente
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 .

Praveen Mitta
fuente