¿Por qué VS Code no carga Git ni las extensiones?

Cristian Tafur

@Cristia16195614
4 min de lectura

Abres un proyecto y el panel de control de código fuente se queda en "Examinando la carpeta de repositorios Git…". La vista de extensiones dice que no tienes ninguna instalada, aunque sabes que sí. Recargas la ventana y sigue igual.

Me pasó hace poco. El repositorio estaba bien y git status respondía al instante desde la terminal. El problema era otro: demasiadas extensiones pesadas arrancando a la vez en un proyecto que no las necesitaba.

Descarta primero el repositorio

Abre una terminal en la carpeta del proyecto y prueba:

git status

Si responde rápido y sin errores, Git está bien. Revisa también que no haya un archivo de bloqueo olvidado:

ls .git/*.lock

Si aparece index.lock y ningún proceso de Git está corriendo, puedes borrarlo. Si no hay ninguno, el problema está en VS Code.

Abre el proyecto sin extensiones

Cierra VS Code por completo, no solo la ventana, y ábrelo desde la terminal así:

code --disable-extensions .

Si ahora Git carga en un par de segundos, la causa es una extensión o la suma de varias. Si tampoco carga, revisa el apartado sobre el entorno de la terminal más abajo.

Encuentra la extensión que estorba

VS Code trae una herramienta que va desactivando la mitad de las extensiones cada vez hasta dar con la culpable. Abre la paleta con Ctrl+Shift+P y busca:

Help: Start Extension Bisect

Te pregunta en cada ronda si el problema sigue y, al final, te dice qué extensión lo provoca.

Para ver cuánto tarda en activarse cada extensión, usa:

Developer: Show Running Extensions

Ahí se ve el tiempo de activación de cada una. Las que tardan varios segundos son las primeras sospechosas.

En mi caso no había una sola culpable. Tenía activos el paquete de Java, SonarLint, Python con Pylance y Flutter en un proyecto de Next.js, y el proceso de extensiones tardaba minutos en terminar de arrancar. Git se activa después de las extensiones de arranque, así que esperaba todo ese tiempo.

Usa un perfil para cada tipo de proyecto

Desinstalar extensiones que usas en otros proyectos no tiene sentido. Lo práctico es crear un perfil con solo lo que necesita cada tipo de trabajo.

  1. Abre la paleta y ejecuta Profiles: New Profile.
  2. Ponle un nombre, por ejemplo "Web", y crea el perfil a partir del actual.
  3. Dentro de ese perfil, desactiva en la vista de extensiones todo lo que no uses en proyectos web.
  4. Con el proyecto abierto, cambia a ese perfil con Profiles: Switch Profile. VS Code recuerda qué perfil usa cada carpeta.

Si prefieres no crear perfiles, en la vista de extensiones cada una tiene la opción "Deshabilitar (área de trabajo)", que la apaga solo en el proyecto abierto.

Revisa cuánto tarda en abrir tu terminal

En Linux, VS Code lee las variables de entorno de tu shell al iniciar. Si tu ~/.bashrc tarda mucho, aparece un aviso parecido a "No se puede resolver el entorno de shell en un tiempo razonable" y el arranque se hace más lento.

Mide cuánto tarda una terminal interactiva en abrir:

time bash -ilc exit

Si pasa de uno o dos segundos, busca en tu ~/.bashrc lo que se ejecuta en cada apertura. En mi caso era el autocompletado de Angular CLI, que lanzaba Node en cada terminal nueva:

source <(ng completion script)

La solución fue guardar ese script una vez en un archivo:

ng completion script > ~/.ng-completion.bash

Y cambiar la línea del ~/.bashrc por:

source ~/.ng-completion.bash

La terminal pasó de tardar casi 7 segundos a medio segundo. Si actualizas Angular CLI y el autocompletado deja de funcionar, vuelve a generar el archivo con el mismo comando.

Dónde mirar si nada de esto funciona

VS Code guarda registros de cada ventana. Ábrelos desde la paleta con:

Developer: Open Logs Folder

Dentro de la carpeta de cada ventana, el archivo exthost/exthost.log muestra en qué orden se activan las extensiones. Si ves que Git nunca aparece o que hay pausas largas entre una línea y la siguiente, ahí tienes la pista.