Visual Studio Code: ¿eliminar las ramas eliminadas en GitHub que aún se muestran en VS Code?

7 minutos de lectura

Avatar de usuario de Drenai
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?

  • 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, y git 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

avatar de usuario de davidhu
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 local test y empujarlo a Github, hay dos ramas testy origin/test en el menú de la rama de git, la ciruela pasa solo elimina el origin/test rama, no la test 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 tipo Git: 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

avatar de usuario de tgr42
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

Avatar de usuario de Bogdan Alexandru Militaru
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:

  1. En Código VSC Ver > Paleta de comandos (cmd/ctrl + Shift + P)
  2. escribe Configurar tarea
  3. Seleccione Crear un archivo tasks.json a partir de una plantilla y se creará un nuevo archivo bajo .vscode carpeta.
  4. La matriz de tareas internas agrega esto:

{ “label”: “Git Prune”, “type”: “shell”, “command”: “git remote prune origin”, “problemMatcher”: []
}

Cómo usarlo:

  1. Abrir paleta de comandos
  2. Escribe Ejecutar tarea y seleccionarlo
  3. Seleccione Git Prune

Referencia:

  1. ciruela pasa

  • Tu sabes si git remote prune origin difiere de la respuesta aceptada de git 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 ejecute git 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 de git 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

Avatar de usuario de Darren G
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

¿Ha sido útil esta solución?