Drenai
En VSCode, después de realizar una solicitud de extracción y eliminar la rama en GitHub, esa rama aún aparece en Visual Studio Code. Si selecciono la rama, da un error, como se esperaba.
¿Cómo elimino estas ramas ahora eliminadas de VSCode? ¿Puedo hacerlo automáticamente?
davidhu
Aparentemente, esta característica es intencional. Descubrí que una forma correcta de eliminar todas las ramas remotas que se eliminaron de Github es ejecutar el siguiente comando.
git fetch --prune
Luego reinicie Visual Studio para eliminar las ramas de la paleta de comandos.
-
@Brian, esto no elimina ninguna sucursal local que tengas. Este comando elimina la
origin/branch_name
desde el menú de cambio rápido de git en VSCode. Por ejemplo, si tiene una sucursal localtest
y empujarlo a Github, hay dos ramastest
yorigin/test
en el menú de la rama de git, la ciruela pasa solo elimina elorigin/test
rama, no latest
rama.– davidhu
12 de noviembre de 2017 a las 23:37
-
este comando no funciona. Todavía veo todas las ramas en la lista tanto cuando hago el comando
git branch
o haga clic en el nombre de la sucursal para ver un menú desplegable con todas las sucursales disponibles– Práctica actual
13 de noviembre de 2018 a las 17:56
-
No es necesario reiniciar VS Code, simplemente presione el botón Actualizar en el menú Control de fuente
– COMO
3 de mayo de 2020 a las 0:23
-
Para ejecutar esto en VS Code, use
Ctrl+Shift+P
y tipoGit: Fetch (Prune)
que debe hacer lo mismo.–Eric Hedengren
5 de julio de 2020 a las 20:24
-
esto solo está destinado a eliminar ramas remotas. para eliminar sucursales locales, puedes hacer
git branch | xargs git branch -d
. o usar-D
si desea eliminar los que no están fusionados también.– davidhu
23 de septiembre de 2021 a las 13:52
Las ramas locales se pueden eliminar de Visual Studio Code abriendo Command Pallete (Ctrl-Shift-P) y luego seleccionando Git: Eliminar rama…luego puede eliminar la sucursal local seleccionando la apropiada de la lista.
-
No lo he probado, pero parece que solo muestra sucursales locales, por lo que debería funcionar como se describe.
– jave.web
7 de noviembre de 2018 a las 18:42
-
@TylerBell Como ya dice, es el método para eliminar la sucursal local, no la sucursal remota.
– Anbuselvan Rocky
26 de mayo de 2019 a las 9:51
-
esta debería haber sido la respuesta. No sé por qué fui tan estúpido como para no saber esto yo mismo. gracias @matthew-disney-cook
– Serzhan Ajmetov
29 de julio de 2019 a las 9:53
-
No, claramente está hablando de una sucursal remota. OP dice que después de eliminarlo de una solicitud de extracción, probablemente usando la interfaz de usuario web o smth, la solicitud de extracción se completa y la rama se elimina (del servidor), pero aún permanece localmente. Entonces, claramente, está hablando de una rama sincronizada en el servidor. Entonces, OP estaba pidiendo eliminar la rama remota que aparece localmente en “ramas remotas”.
– Shai Petel
27/07/2021 a las 18:50
tgr42
Abra la paleta de comandos (Ctrl+Shift+P) y seleccione Git: buscar (podar).
Este rasgo estaba fusionado en VS Code el 20 de noviembre de 2018.
-
¿Hay alguna manera de hacer que este comportamiento predeterminado de git pull in vscode?
– Tuncay Göncüoğlu
12 de diciembre de 2019 a las 10:53
-
Sí, puedes configurar
git.pruneOnFetch: true
– brianrea
1 de febrero a las 22:44
-
todavía no funciona
– heysujal
26 oct a las 7:32
Las ramas eliminadas de GitHub están bien… simplemente eliminadas de GitHub. Todavía tiene una copia local de la sucursal en su máquina. Para eliminar la ejecución de la rama local git branch -d the_local_branch
. No hay ningún comando en VS Code para hacerlo, pero puede iniciar la terminal en VSCode usando View: Toggle Integrated Terminal
comando y ejecute el comando desde él.
Para obtener más información sobre la administración de sucursales, visite la documentación de git: https://git-scm.com/book/be/v2/Git-Branching-Branch-Management
Bogdan Alexandru Militaru
Todo lo que necesita hacer es ejecutar este comando:
git remote prune origin
Algo extra que puedes hacer, porque a veces es molesto abrir una terminal solo para eso… puedes agregar una tarea en vscode.
Para hacer eso por favor siga estos pasos:
- En Código VSC Ver > Paleta de comandos (cmd/ctrl + Shift + P)
- escribe Configurar tarea
- Seleccione Crear un archivo tasks.json a partir de una plantilla y se creará un nuevo archivo bajo .vscode carpeta.
- La matriz de tareas internas agrega esto:
{ “label”: “Git Prune”, “type”: “shell”, “command”: “git remote prune origin”, “problemMatcher”: []
}
Cómo usarlo:
- Abrir paleta de comandos
- Escribe Ejecutar tarea y seleccionarlo
- Seleccione Git Prune
Referencia:
-
Tu sabes si
git remote prune origin
difiere de la respuesta aceptada degit fetch --prune
? El detalle de Ejecutar tarea es genial, gracias por publicarlo.– Drenai
10 de septiembre de 2018 a las 11:44
-
@Drenai No, son iguales. Pero para una respuesta completa mira aquí
– Bogdan Alexandru Militaru
10 de septiembre de 2018 a las 12:04
no tienes que hacerlo git fetch --prune
y reinicie VSCode más.
Con VSCode 1.52 (noviembre de 2020), ahora tiene:
Git: podar al buscar
Habilitando el
git.pruneOnFetch
la configuración hará que VS Code se ejecutegit fetch --prune
al buscar referencias remotas.
No más sucursales adicionales a nivel local una vez que se hayan eliminado de GitHub.
Ver PR 89249fijación número 86813:
Uso:
{ "git.pruneOnFetch": true }
El ajuste es
false
por defecto.Esto agregaría la
--prune
marcar todas las búsquedas de git.
-
Tu sabes si
git remote prune origin
difiere de la respuesta aceptada degit fetch --prune
? El detalle de Ejecutar tarea es genial, gracias por publicarlo.– Drenai
10 de septiembre de 2018 a las 11:44
-
@Drenai No, son iguales. Pero para una respuesta completa mira aquí
– Bogdan Alexandru Militaru
10 de septiembre de 2018 a las 12:04
Darren G.
Interpreté la pregunta como: ¿cómo puedo eliminar mi local ramas que se han fusionado, ya que he estado usando Git Fetch (Prune) desde la paleta de comandos. Esto puede considerarse un “truco”, pero es lo que uso. En la terminal de PowerShell:
$branches = (git branch --merged).replace(" ", "").replace("*", "") | ? { $_ -ne "develop" -and $_ -ne "master" }
foreach ($branch in $branches) { git branch $branch -d }
En caso de que no esté familiarizado con PoSH, esto es lo que hace: la primera línea obtiene el nombre de todas las ramas combinadas (con la excepción de desarrollar y maestro), y la segunda línea recorre esa lista y ejecuta “git branch -d “. Siempre que la rama se fusione por completo, debería ver:
Deleted branch <branch name> (was <commit ID>).
para cada rama. Ocasionalmente, me encuentro con una rama que no se puede eliminar; si esto sucede y está seguro de que es seguro eliminarla (es decir, no perderá el trabajo local que no se ha almacenado), puede ejecutar:
git branch <branch name> -D
Nótese la D mayúscula – que a la fuerza elimina la rama local.
-
Ese es un comando loco de PowerShell 😊 Tengo que dar un voto a favor de la valentía por ejecutar eso en tu repositorio
– Drenai
14/03/2019 a las 22:15
-
Hay una delgada línea entre la genialidad y la locura. Esto está muy lejos de esa línea, en el lado de la locura.
– Darren G.
16 de marzo de 2019 a las 1:51
-
No, no es. No es tan complejo cuando lo miras, y de todos modos, es solo una traducción de powershell de las respuestas de aquí: stackoverflow.com/questions/6127328/…
–Scott Stafford
2 de diciembre de 2019 a las 14:33
-
@ScottStafford Para mí, un comando de 170 caracteres para eliminar ramas está en el lado complejo de la
simple | complex
dividir😉– Drenai
2 dic 2019 a las 20:56
Para seguir (3 años después), la respuesta correcta para mí es una combinación de
git fetch --prune
para actualizar/eliminar referencias a sucursales remotas, ygit branch -d <branch-name>
para eliminar la sucursal local (-D
para forzar). Reiniciar VSCode actualiza la paleta– Drenai
5 de febrero de 2020 a las 0:01
No es necesario reiniciar VS Code, simplemente presione el botón Actualizar en el menú Control de fuente
– COMO
3 de mayo de 2020 a las 0:24
De hecho, construí una función para manejar esto y escribo un pequeño artículo al respecto. Enlace
– davidhu
7 julio 2020 a las 22:38
@Drenai por qué necesita usuario
git branch -d <branch-name>
para eliminar ramas individuales una por una?– Aashiq
9 sep 2021 a las 8:10