¿Cómo puede deshabilitar la integración de Git en Visual Studio 2013 de forma permanente?

113

Sé que puede deshabilitar la integración de git usando el cuadro de diálogo Herramientas / Opciones, pero lo que he notado es que esta configuración no parece persistir entre sesiones; es decir, tan pronto como cierre y vuelva a abrir la solución, la integración de Git se habilita nuevamente. Supongo que Visual Studio está viendo la carpeta .git en el árbol del sistema de archivos de mi solución.

Hay una variedad de complementos de Visual Studio 2013 que se comportan incorrectamente cuando el complemento de Git está habilitado, prefiero administrar mi control de código fuente en la línea de comandos y trabajo en algunos proyectos muy grandes para los que la integración de Git presenta ralentizaciones notables en abrir y trabajar con la solución. Me gustaría apagarlo para siempre, ya que simplemente no lo uso ni lo necesito. es posible?

Bryan Porter
fuente
1
posiblemente útil: para solucionarlo, deshabilité la extensión y luego cambié el control de fuente usando la función ' Vincular
Tom Kerr
1
Ese es el truco: en Visual Studio 2013, la integración de Git no se proporciona como una extensión, está integrada. No se puede deshabilitar la extensión, ya que no hay ninguna extensión para deshabilitar. ¡Abucheo!
Bryan Porter
tal vez podrías automatizarlo?
klumsy
Podría, pero ¿qué disparador usaría para ejecutar la automatización? ¿Una extensión que dispara con carga? Escribir una extensión para deshabilitar una función OOB se siente extraño.
Bryan Porter
1
Mi equipo también tuvo este problema. Creo que el truco que usamos fue cargar una solución, deshabilitar la integración de git y luego reiniciar VS. También puede intentar instalar SP 1.
Ade Miller

Respuestas:

90

Como dijiste, puedes deshabilitar el complemento de control de fuente yendo a:

  • Opciones de herramientas
  • Marque "Mostrar todas las configuraciones"
  • Control de fuente / Selección de complemento
  • Establezca "Complemento de control de fuente actual" en "Ninguno"

Luego, como dice Ade Miller: Reinicie Visual Studio.

Mi Visual Studio funcionaba muy lento desde que se habilitó el plugin de git y logré deshabilitarlo "persistentemente entre sesiones" siguiendo estos pasos.

Espero eso ayude.

Aebsubis
fuente
42
Encuentro que VS simplemente vuelve a habilitar GIT al reabrir la solución. Además, la extensión NoGit que se menciona a continuación no funciona. Hmm.
mackenir
Tengo el mismo problema. VS simplemente vuelve a habilitar la integración de GIT en el reinicio de VS. Tenga en cuenta que lo he desactivado como se describe anteriormente docenas de veces. (sigue volviendo)
Venryx
1
también me lo vuelve a habilitar. aparentemente alguien escribió una extensión que lo desactiva al inicio. ¡loco! stackoverflow.com/questions/22459959/… . Otro truco en este enlace es eliminar el permiso de Everyone para el proveedor dll: C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Microsoft.TeamFoundation.Git.Provider. dll
Sonic Soul
3
Descubrí que abrir la ventana de Team Explorer me lo habilitó. Así que cerré esa ventana y volví a cambiar la opción a Ninguno. Con suerte, VS no intentará "ayudarme" de nuevo en este caso.
Sean
Sin soluciones cargadas, cambié la configuración del complemento de control de fuente de Git a None. Luego reinicié Visual Studio (aún sin una solución) y verifiqué la configuración, y ahora era Visual Studio Team Foundation Server. Lo puse de nuevo en Ninguno y reinicié VS nuevamente, y esta vez parece que se ha atascado.
Adrian McCarthy
52

Tuve el mismo problema con Visual Studio 2015, donde la extensión NoGit ni siquiera se permitió instalar. Utilizo la opción "abrir la última solución al inicio", así que pensé que tal vez esto estaba relacionado de alguna manera con el problema.

Así que simplemente cerré mi solución antes de ir a "Herramientas - Opciones - Control de fuente", luego la apagué, reinicié VS y - ¡voilá, SC permaneció apagado! Espero que también se mantenga así en otras soluciones.

Artalus
fuente
2
Mil veces esto. Sin truco de registro, sin extensión personalizada, esto funciona. Gracias !
Driis
1
Tenía que combinar esto con una otra cosa: He actualizado mi VisualStudio acceso directo del menú inicio para incluir este indicador de línea de comandos: /ResetSettings "C:\Users\myuserid\Documents\Visual Studio 2015\Settings\CurrentSettings.vssettings". De acuerdo con la referencia de la línea de comando, esta configuración "Restaura la configuración predeterminada del IDE, opcionalmente se restablece al archivo VSSettings especificado". Eso parece asegurar que la configuración deseada se aplique siempre.
mcw
4
¡Gracias! Esto funcionó para mí. Otra nota: asegúrese de cerrar la pestaña Team Viewer en el lado derecho (junto al Explorador de soluciones) antes de hacer esto, o se volverá a habilitar automáticamente si hace clic en ella.
ForOhFor
2
Asegúrese de eliminar el proceso de ejecución de devenv.exe que persiste después de que VS se bloquea y deja al menos una de sus CPU fijada, de lo contrario, puede hacer esto una y otra vez y no se pegará. ¡Pero tan feliz cuando lo hace y no se requiere pirateo de registro!
Atters el
19

Para mí, crear el repositorio con el siguiente comando soluciona el problema:

git init --separate-git-dir _git

Como no crea un .git directorio , solo un .git archivo que apunta al directorio del repositorio real, por ejemplo:

gitdir: C:/tfs/ProjectName/Main/_git

¡Visual Studio (al menos hasta VS2015 Update 3, que es lo que uso) no lo nota!

Esto funcionó mejor que las cosas de la variable de entorno porque las extensiones de Git (que estoy usando) tuvieron problemas para admitir eso, pero resolvieron el .git archivo apuntando a una _gitcarpeta perfectamente.

Alex
fuente
De acuerdo, preferiría no meterme con las variables de entorno tampoco. Esto funciona muy bien.
kaveman
Agregaré que hay un error tipográfico leve arriba, la opción es--separate-git-dir
kaveman
2
¡Solución increíble! Gracias a Dios VS2013 no implementó la lectura de este .git"enlace simbólico de Git independiente del sistema de archivos al repositorio", o nos habríamos encontrado en el mismo problema.
KurzedMetal
2
De hecho, esta es la solución más simple que existe en toda la cadena de respuestas.
Tarik
1
¡Muchas gracias por la pista! Dado que la extensión de Visual Studio 'NoGit' no funciona con VS 2017, esta es la única forma de detener VS 2017 de "git-monitoring" :-) ¡Gracias! 👍
Ruslan Garipov
11

Una razón por la que git SCC se vuelve a habilitar en VS2015 cada vez que se carga el IDE es CodeLens. Herramientas / Opciones / Editor de texto / Todos los idiomas / CodeLens Hay una casilla de verificación para varias actividades que involucran TFVS y Git; si se marca cualquiera de esas casillas de verificación de git, se habilitará automáticamente el complemento de Git si cree que está trabajando en un repositorio de git.

John Brett
fuente
Respuesta de trabajo (para mí) que no sugiere eliminar la solución del control de código fuente o dañar la instalación de VS.
Evren Kuzucuoglu
Esta es la solución correcta.
Juan Pablo Califano
Esto es realmente importante, ya que vi que Visual Studio 2017 anula lo trivial de deshabilitar el control de fuente. Pero parece que incluso después de eso VS 2017 crea una .vscarpeta.
Royi
8

Extensión NoGit Visual Studio maneja este comportamiento.

Bono: descripción impresionante.

mxmissile
fuente
Desafortunadamente, ya no funciona con VS2013 SP3
thumbmunkeys
Estoy usando VS 2013 Update 4 y todavía me funciona bien.
mxmissile
Confundí la integración de git con la información de git que se muestra en codelens ... ¡gracias por la aclaración!
thumbmunkeys
3
Tampoco es compatible con 2015
Ben Wilde
@BenWilde La nueva versión funciona con VS 2015 Update 1 ( tómalo aquí: github.com/hmemcpy/nogit )
Ruslan Garipov
8

Para Visual Studio 2015, descubrí que CodeLens estaba volviendo a habilitar el complemento Git Source Control después de reiniciar. Deshabilitar CodeLens solucionó esto.

Ed Andersen
fuente
Esto es importante para deshabilitar GIT en Visual Studio 2017. ¡Excelente captura!
Royi
6

(Actualización: esta respuesta ahora proporciona una solución completamente funcional basada en mi conocimiento más profundo de GIT_DIR y GIT_WORK_TREE)

Resumen: Git es lo suficientemente flexible como para que pueda mover el .gitdirectorio a un lugar fuera del directorio de trabajo con los archivos extraídos de tfs. Esto hace que sea posible tener una comprobación tfs 100% limpia sin ningún rastro de git que Visual Studio pueda detectar mientras aún puede operarlo como un repositorio de git. La clave es separar el directorio git (almacenamiento del repositorio de git) y el árbol de trabajo (su código fuente extraído).

Digamos que su código fuente está extraído c:\work\someproject\tfscodey ya lo ha ejecutado git initallí, por ejemplo, Visual Studio detecta elc:\work\someproject\tfscode\.git directorio y eso causa problemas.

Para hacer la vida más placentera, haga lo siguiente:

$ cd /cygdrive/c/work/someproject
$ mv tfscode/.git tfscode.git
$ echo export GIT_DIR=/cygdrive/c/work/someproject/tfscode.git >> env.sh
$ echo export GIT_WORK_TREE=/cygdrive/c/work/someproject/tfscode >> env.sh
$ source env.sh
$ cd tfscode
$ git status
...
$

Esto funciona perfectamente con respecto a Visual Studio, ya que luego ignora por completo cualquier cosa almacenada en git.

hlovdal
fuente
Por cierto, a git-tf naturalmente no le gustan las rutas cygwin, así que úselo GIT_...=c:/work/...si planea usar git tf.
hlovdal
Esto es genial, pero debo usar c: / work / ... style path en lugar de \ c \ work \ .. style.
zumalifeguard
6

Esto funcionó para mí en Visual Studio 2013 y 2015. Persiste aunque cierre y vuelva a abrir Visual Studio.

  1. Abre la solucion

  2. Vaya a Herramientas -> Opciones -> Control de fuente -> Establecer complemento en Ninguno

  3. Cierre Visual Studio y ejecute el siguiente comando con derechos administrativos.

mover "C: \ Archivos de programa (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Microsoft.TeamFoundation.Git.Provider.dll" "C: \ Archivos de programa (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Microsoft.TeamFoundation.Git.Provider.dll.bak "
sb.olofsson
fuente
VS 2015 Update 1: el proveedor MSFT TFS no funciona después de esto
Ruslan Garipov
... o simplemente puede desactivar CodeLens como sugiere @John Brett.
Mike
6

Quitar Microsoft GitProvider de Visual Studio 2015

Enlace: http://researchaholic.com/2015/02/02/remove-the-microsoft-gitprovider-from-visual-studio-2013/

  1. Asegúrese de que Visual Studio esté cerrado
  2. Abrir regedit
  3. Vaya a HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders
  4. Eliminar 11b8e6d7-c08b-4385-b321-321078cdd1f8 En el panel de detalles debería decir GitProvider
  5. Abrir Visual Studio
Maks
fuente
1
mejora de esta respuesta: aplique el siguiente archivo de registro de Windows, versión 5.00 [-HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders \ {11b8e6d7-c08b-4385-b321-321078cdd1f8}]
Ivan Shakhov
4

Me las arreglé para deshabilitar el proveedor de Git de Visual Studio incorporado eliminando todas las apariciones de esas claves de registro:

7FE30A77-37F9-4CF2-83DD-96B207028E1B

11b8e6d7-c08b-4385-b321-321078cdd1f8

Boklucius
fuente
1
¡Esto funciona para mí! ¡Gracias! Pero queda una pregunta: si eventualmente actualizo VS (haciendo una actualización menor o mayor), ¿tendré que eliminar las claves nuevamente?
Ruslan Garipov
4

Utilice el nuevo paquete de extensión NoGit: https://github.com/markrendle/nogit/releases/download/1.0.5/NoGit.vsix

Descargue y agregue a Visual Studio: /superuser/73675/how-do-i-install-a-vsix-file-in-visual-studio

Fácil.

Ben Wilde
fuente
Para instalar, preferí cambiar manualmente la extensión .vsix a .zip, para que luego pueda hacer clic derecho y extraer los archivos. Luego, todo lo que tiene que hacer es colocar la nueva carpeta extraída en la carpeta de datos de la aplicación de sus usuarios (% appdata% \ Local \ Microsoft \ VisualStudio \ {versión} \ Extensions). Luego reinicie Visual Studio, abra Herramientas-> Extensiones y actualizaciones ..., luego busque "NoGit" y habilítelo, luego reinicie nuevamente.
Ben Wilde
4

Fue dolor de espalda durante una semana y no sabía cómo comencé este servicio de control de fuente en VS2015. Pero llegué a saber cómo detenerlo. Estos son los pasos para desacoplar git / cualquier control de fuente con VS2019.

Vaya a VS -> Herramientas -> Opciones -> Control de fuente -> [Complemento de control de fuente actual]

Obtiene todo el control de fuente posible en su sistema y la opción Ninguno. Si elige Ninguno, está todo listo. El mío se arregló justo después de seleccionar la opción Ninguno, presione Aceptar y reinicie el VS y no más control de fuente.

SRoy
fuente
3

Debe cerrar todas las soluciones VS. inicie uno, configure Menú \ herramientas \ opciones \ Control de fuente \ Git -> Ninguno, cierre esta solución cuando se le solicite. Ahora, al abrir cualquier otra solución, las opciones permanecen en "Ninguna".

Sergei Meleshchuk
fuente
1

VS2015 estaba absorbiendo el 50% de mi CPU cuando estaba inactivo. Aprendí que deshabilitar Git era la solución. Desafortunadamente, deshabilitar Git solo para aprenderlo lo vuelve a habilitar automáticamente.

En mi caso, realmente quería usar Git pero no con un 50% de uso de CPU.

Como la solución NoGit solo está disponible para VS2013, puede descargar: Proveedor de control de fuente de Git incluso si no usa Git. Mi uso de CPU es ahora 2,2% en lugar de 50% cuando está inactivo.

bluee
fuente
1

También tengo problemas con Git en Visual Studio, pero creo que finalmente he encontrado una solución que funciona. Hasta ahora he usado el truco de cambiar el nombre de la carpeta .git a _git y agregar un archivo de texto llamado .git que contiene la línea "gitdir: _git". Pero desde la actualización a VS2019 eso ya no funciona.

He probado muchas soluciones diferentes, pero ninguna ha funcionado ya que necesito Git para algunos proyectos y no para otros. Mi proyecto problemático está utilizando el Team Foundation Server de mi empresa para el control de código fuente. Pero como perdí el código en fusiones incorrectas realizadas por TFS, estoy confirmando mis cambios en un repositorio de Git local antes de actualizar o comprometerme con TFS.

D:\Projects\TFS\.git Repositorio de git local que VS no debería usar.

D:\Projects\TFS\ProjectA\$tf Archivos TFS que VS debería usar para ProjectA.

No importa cuánto lo intenté, no pude hacer que VS usara TFS para ProjectA cuando encontró una carpeta .git en una carpeta principal. Mi solución es mover la carpeta .git a:

D:\Projects\TFS-GIT\.git

y cree una unión de directorio a la carpeta ProjectA. Inicie un símbolo del sistema elevado y ejecute:

mklink /J D:\Projects\TFS-GIT\ProjectA D:\Projects\TFS\ProjectA

Abriendo el D:\Projects\TFS\ProjectA\ProjectA.sln en Visual Studio, no encontrará ninguna carpeta .git y se conectará a TFS como debería.

La ejecución de comandos de git desde D:\Projects\TFS-GITutilizará los mismos archivos que Visual Studio, excepto que la carpeta .git también está disponible. TortoiseGit también funciona bien desde esta carpeta.

Anlo
fuente
0

Me costó mucho encontrar una solución para esto y lo logré después de tantos intentos, por lo que no puedo ser preciso. Cree otro repositorio local usando GitHub Desktop en otra carpeta. Hecho esto, abra Visual Studio sin cargar un proyecto, ahora Team Explorer debería mostrar ambos repositorios. Seleccione el nuevo repositorio ya que debe hacer algunas operaciones, en este punto puede "eliminar" su antiguo repositorio, ya que el nuevo es el "activo". Después de hacer esto, eliminé los archivos .git * .hidden de la carpeta anterior. Ahora, abrir el proyecto no hace que se vuelva a crear el antiguo repositorio. Espero que esto ayude.

Stefano Losi
fuente
0

Eso es una locura, pero lo que funcionó para mí fue vaciar mi Papelera de reciclaje (que contenía la carpeta .git no deseada de mi solución).

Todavía no puedo creerlo ...

Jérôme MEVEL
fuente
0

Cambiar el nombre de "C: \ Archivos de programa (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation"

VS mostrará el error solo una vez y funcionará bien.

Ivan Shakhov
fuente
0

Este infierno de extensión git ralentiza todo en IDE (VS 2015 en mi caso). Tuve que eliminar toda la carpeta TeamFoundation para deshacerme de esto. La desventaja es que no podrá utilizar Git y TeamFoundation en Visual Studio 2015. Nota: Haga una copia de seguridad de esta carpeta en otro lugar y restáurela cuando sea necesario.

Para eliminar la carpeta hice esto. Los pasos que seguí para eliminar la carpeta correcta

La razón por la que hice esto es porque, VS 2015 genera un nombre de carpeta aleatorio para la extensión TeamFoundation, por lo que el nombre de mi carpeta podría ser diferente al suyo.

Soundararajan
fuente
-2

Herramientas, Opciones, Control de fuente, Selección de complemento, Ninguno

Dale Fraser
fuente
8
Visual Studio 2013 no conservará este cambio. La próxima vez que abra la solución, volverá a seleccionar automáticamente el complemento Git si detecta un directorio .git. Incluso hará esto si la solución ya está vinculada a TFVC.
Mark W Dickson
-4

1) cerrar solución y estudio visual. 2) vaya al directorio de la solución y elimine el directorio git oculto y 2 archivos de texto git. 3) abra Visual Studio nuevamente. 4) Ir a herramientas -> opciones y control de fuente. 5) no seleccione ninguno. 6) reinicia Visual Studio. 7) abre tu solución. 8) Vaya a herramientas -> opciones y control de fuente nuevamente y seleccione TFS. 9) en la solución, haga clic derecho para seleccionar agregar control de fuente a la solución. 10) seleccione tfs.

usuario1813748
fuente
No quieren TFS y ciertamente NO QUIEREN eliminar la carpeta .git ya que borrará todo el historial de confirmaciones locales. Lo que piden es cómo evitar que VS use información de la carpeta .git, no cómo purgar esa carpeta.
quetzalcoatl
-5

Vuelva a establecer Tools \ Options \ Source Control en TFS. Cierre Visual Studio 2015. Abra la carpeta raíz de su código fuente. Elimina la carpeta llamada ".git". Reiniciar.

Charlie Benson
fuente
4
Eso suena un poco como si le pidiera al operador que elimine la carpeta de git por completo. "Prefiero administrar mi control de código fuente en la línea de comandos" parece indicar que esa no sería la solución para él.
Evren Kuzucuoglu