Come puoi disabilitare permanentemente l'integrazione di Git in Visual Studio 2013?


113

So che puoi disabilitare l'integrazione di git utilizzando la finestra di dialogo Strumenti / Opzioni, ma quello che ho notato è che questa impostazione non sembra persistere tra le sessioni; cioè, non appena si chiude e si riapre la soluzione, l'integrazione di Git viene nuovamente abilitata. Immagino che Visual Studio stia vedendo la cartella .git nella struttura del file system della mia soluzione.

Esistono numerosi plug-in di Visual Studio 2013 che si comportano in modo errato quando il plug-in Git è abilitato, preferisco gestire il mio controllo del codice sorgente dalla riga di comando e lavoro su alcuni progetti molto grandi per i quali l'integrazione Git introduce rallentamenti evidenti nell'aprire e lavorare con la soluzione. Mi piacerebbe spegnerlo per sempre, perché semplicemente non lo uso o ne ho bisogno. È possibile?


1
forse utile: per risolverlo, ho disabilitato l'estensione e poi ho cambiato il controllo del codice sorgente utilizzando la funzione 'Bind' del comando Cambia controllo sorgente - Vedi di più su: thereprogram.com/2013/04/18/visual-studio-tools-for- git / ...
Tom Kerr

1
Questo è il trucco: in Visual Studio 2013, l'integrazione di Git non viene fornita come estensione, ma è integrata direttamente. Non è possibile disabilitare l'estensione, poiché non è presente alcuna estensione da disabilitare. Boo!
Bryan Porter

forse potresti automatizzarlo?
klumsy

Potrei, ma quale trigger dovrei usare per eseguire l'automazione? Un'estensione che si attiva sotto carico? Scrivere un'estensione per disabilitare una funzione OOB sembra strano.
Bryan Porter

1
Anche il mio team ha avuto questo problema. Penso che il trucco che abbiamo usato fosse caricare una soluzione, disabilitare l'integrazione di git e quindi riavviare VS. Potresti anche provare a installare SP 1.
Ade Miller

Risposte:


90

Come hai detto puoi disabilitare il plugin di controllo del codice sorgente andando su:

  • Strumenti / Opzioni
  • Seleziona "Mostra tutte le impostazioni"
  • Controllo del codice sorgente / Selezione plug-in
  • Imposta "Plug-in di controllo del codice sorgente corrente" su "Nessuno"

Quindi, come dice Ade Miller: riavvia Visual Studio.

Il mio Visual Studio funzionava molto lentamente da quando il collegamento git era abilitato e sono riuscito a disabilitarlo "in modo persistente tra le sessioni" seguendo questi passaggi.

Spero che sia d'aiuto.


42
Trovo che VS semplicemente riattivi GIT alla riapertura della soluzione. Inoltre, l'estensione NoGit menzionata di seguito non funziona. Hmm.
mackenir

Ho lo stesso problema. VS semplicemente riattiva l'integrazione GIT al riavvio di VS. Nota che l'ho disabilitato come descritto sopra dozzine di volte. (continua a tornare)
Venryx

1
lo riattiva anche per me. a quanto pare qualcuno ha scritto un'estensione che lo disabilita all'avvio. pazzesco! stackoverflow.com/questions/22459959/… . un altro trucco in questo collegamento è rimuovere l'autorizzazione da Everyone per il provider 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
Ho scoperto che l'apertura della finestra Team Explorer mi ha riattivato. Quindi ho appena chiuso quella finestra e ho ripristinato l'opzione Nessuno. Spero che VS non proverà ad "aiutarmi" di nuovo su questo.
Sean

Senza soluzioni caricate, ho modificato l'impostazione del plug-in del controllo del codice sorgente da Git a Nessuno. Ho quindi riavviato Visual Studio (ancora senza soluzione) e controllato l'impostazione, e ora era Visual Studio Team Foundation Server. L'ho impostato di nuovo su Nessuno e ho riavviato di nuovo VS, e questa volta sembra che si sia bloccato.
Adrian McCarthy

52

Ho avuto lo stesso problema con Visual Studio 2015, dove l'estensione NoGit non poteva nemmeno essere installata. Uso l'opzione "apri l'ultima soluzione all'avvio" quindi ho pensato che forse questo fosse in qualche modo collegato al problema.

Quindi ho semplicemente chiuso la mia soluzione prima di andare su "Strumenti - Opzioni - Controllo del codice sorgente", quindi l' ho spento, riavviato VS e - voilà, SC è rimasto spento! Spero che rimanga così anche in altre soluzioni.


2
Mille volte questo. Nessun hack del registro, nessuna estensione personalizzata, funziona. Grazie !
driis

1
Ho dovuto combinare questo con un'altra cosa: ho aggiornato il mio VisualStudio collegamento nel menu Start per includere questo flag della riga di comando: /ResetSettings "C:\Users\myuserid\Documents\Visual Studio 2015\Settings\CurrentSettings.vssettings". In base al riferimento della riga di comando, questa impostazione "Ripristina le impostazioni predefinite dell'IDE, facoltativamente reimposta al file VSSettings specificato". Ciò sembra garantire che le impostazioni desiderate vengano sempre applicate.
mcw

4
Grazie! Questo ha funzionato per me. Un'altra nota: assicurati di chiudere la scheda Visualizzatore team sul lato destro (accanto a Esplora soluzioni) prima di farlo, altrimenti si riattiverà automaticamente se fai clic su di esso.
ForOh per il

2
Assicurati di uccidere il processo run away devenv.exe che persiste dopo che VS si blocca lasciando almeno una delle CPU bloccate, altrimenti puoi farlo più e più volte e non si attaccherà. Ma così felice quando lo fa e non è richiesto alcun hack del registro!
Atters

19

Per me, la creazione del repository con il seguente comando risolve il problema:

git init --separate-git-dir _git

Dal momento che non crea una .git directory , solo un .git file che punta alla directory del repository reale, ad esempio:

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

Visual Studio (almeno fino a VS2015 Update 3, che è quello che uso) non se ne accorge!

Ha funzionato meglio della roba della variabile di ambiente perché Git Extensions (che sto usando) aveva problemi a supportarlo, ma ha gestito perfettamente il .gitfile che puntava a una _gitcartella.


D'accordo, preferirei non scherzare nemmeno con le cose delle variabili d'ambiente. Funziona bene.
kaveman

Aggiungerò che c'è un leggero errore di battitura sopra, l'opzione è--separate-git-dir
kaveman

2
Soluzione fantastica! Grazie a Dio VS2013 non ha implementato la lettura di questo .git"collegamento simbolico Git indipendente dal filesystem al repository", altrimenti avremmo trovato lo stesso problema.
KurzedMetal

2
Questa è davvero la soluzione più semplice esistente nell'intera catena di risposte.
Tarik,

1
Grazie mille per il suggerimento! Poiché l'estensione di Visual Studio "NoGit" non funziona con VS 2017, questo è l'unico modo per me di impedire a VS 2017 di "monitorare git" :-) Grazie! 👍
Ruslan Garipov

11

Uno dei motivi per cui git SCC viene riattivato in VS2015 ogni volta che l'IDE viene caricato è CodeLens. Strumenti / Opzioni / Editor di testo / Tutte le lingue / CodeLens C'è una casella di controllo per varie attività che coinvolgono TFVS e Git: avere una di queste caselle di controllo git selezionata abiliterà automaticamente il plugin Git se pensa che stai lavorando su un repository git.


Risposta funzionante (per me) che non suggerisce di rimuovere la soluzione dal controllo del codice sorgente o di danneggiare l'installazione di VS.
Evren Kuzucuoglu

Questa è la soluzione giusta.
Juan Pablo Califano

Questo è molto importante perché ho visto che Visual Studio 2017 sostituisce la cosa banale di disabilitare il controllo del codice sorgente. Ma sembra che anche dopo che VS 2017 crei una .vscartella.
Royi

8

L'estensione NoGit Visual Studio gestisce questo comportamento.

Bonus: descrizione fantastica.


purtroppo non funziona più con VS2013 SP3
thumbmunkeys

Sto usando VS 2013 Update 4 e funziona ancora bene per me.
mxmissile

Ho confuso l'integrazione git con le informazioni git mostrate nei codelens ... grazie per il chiarimento!
thumbmunkeys

3
Non supporta neanche il 2015
Ben Wilde

@BenWilde La nuova versione funziona con VS 2015 Update 1 (prendilo qui: github.com/hmemcpy/nogit )
Ruslan Garipov

8

Per Visual Studio 2015, ho scoperto che CodeLens stava riattivando il plug-in Git Source Control dopo il riavvio. La disabilitazione di CodeLens ha risolto questo problema.


Questo è importante per disabilitare GIT in Visual Studio 2017. Grande cattura!
Royi

6

(Aggiornamento: questa risposta ora fornisce una soluzione completamente funzionante basata sulla mia più profonda comprensione di GIT_DIR e GIT_WORK_TREE)

Riepilogo: Git è abbastanza flessibile da poter spostare la .gitdirectory in un posto al di fuori della directory di lavoro con i file estratti da tfs. Ciò rende quindi possibile avere un checkout tfs pulito al 100% senza tracce di git che lo studio visivo è in grado di rilevare pur essendo in grado di gestirlo come un repository git. La chiave è separare la directory git (archiviazione del repository git) e l'albero di lavoro (il codice sorgente estratto).

Supponiamo che il tuo codice sorgente sia stato estratto c:\work\someproject\tfscodee che tu sia già stato eseguito git initlì, ad esempio visual studio rileva la c:\work\someproject\tfscode\.gitdirectory e questo causa problemi.

Per rendere la vita più piacevole, procedi come segue:

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

Funziona perfettamente per quanto riguarda lo studio visivo poiché ignora completamente qualsiasi cosa memorizzata in git.


A proposito, a git-tf naturalmente non piacciono i percorsi cygwin, quindi usalo se prevedi GIT_...=c:/work/...di usare git tf.
hlovdal

Questo è fantastico, ma devo usare il percorso dello stile c: / work / ... invece dello stile \ c \ work \ ...
zumalifeguard

6

Questo ha funzionato per me in Visual Studio 2013 e 2015. Persiste anche se chiudi e riapri Visual Studio.

  1. Apri la soluzione

  2. Vai a Strumenti -> Opzioni -> Controllo del codice sorgente -> Imposta plugin su Nessuno

  3. Chiudi Visual Studio ed esegui il comando seguente con diritti amministrativi.

spostare "C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Microsoft.TeamFoundation.Git.Provider.dll" "C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Microsoft.TeamFoundation.Git.Provider.dll.bak "

VS 2015 Update 1: il provider MSFT TFS non funziona dopo questo
Ruslan Garipov,

... oppure potresti semplicemente disabilitare CodeLens come suggerisce @John Brett.
mike

6

Rimuovere Microsoft GitProvider da Visual Studio 2015

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

  1. Assicurati che Visual Studio sia chiuso
  2. Apri regedit
  3. Vai a HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders
  4. Elimina 11b8e6d7-c08b-4385-b321-321078cdd1f8 Nel riquadro dei dettagli dovrebbe dire GitProvider
  5. Apri Visual Studio

1
miglioramento di questa risposta: applica il seguente file reg Editor del registro di Windows Versione 5.00 [-HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders \ {11b8e6d7-c08b-4385-b321-321078cdd1f8}]
Ivan Shakhov

4

Sono riuscito a disabilitare il provider Git di Visual Studio integrato eliminando tutte le occorrenze di quelle chiavi di registro:

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

11b8e6d7-c08b-4385-b321-321078cdd1f8


1
Questo funziona per me! Grazie! Ma rimane una domanda: se alla fine aggiornerò VS (facendo un aggiornamento minore o maggiore), dovrò cancellare di nuovo le chiavi?
Ruslan Garipov

4

Per installare, ho preferito cambiare manualmente l'estensione .vsix in .zip, in modo da poter quindi fare clic con il tasto destro ed estrarre i file. Quindi tutto ciò che devi fare è inserire la nuova cartella estratta nella cartella dei dati dell'app degli utenti (% appdata% \ Local \ Microsoft \ VisualStudio \ {version} \ Extensions). Quindi riavvia Visual Studio, apri Strumenti-> Estensioni e aggiornamenti ..., quindi trova "NoGit" e abilitalo, quindi riavvia.
Ben Wilde

4

È stato un dolore alla schiena per una settimana e non sapevo come ho avviato questo servizio di controllo del codice sorgente in VS2015. Ma devo sapere come fermarlo. Ecco i passaggi per disaccoppiare git / qualsiasi controllo del codice sorgente con VS2019.

Vai a VS -> Strumenti -> Opzioni -> Controllo del codice sorgente -> [Plug-in di controllo del codice sorgente corrente]

Ottieni tutto il possibile controllo del codice sorgente nel tuo sistema e l'opzione Nessuno. Se scegli Nessuno, sei pronto. Il mio è stato risolto subito dopo aver selezionato l'opzione Nessuno, premi ok e riavvia il VS e non più il controllo del codice sorgente.


3

È necessario chiudere tutte le soluzioni VS. avviane uno, imposta Menu \ strumenti \ opzioni \ Controllo codice sorgente \ Git -> Nessuno, chiudi questa soluzione quando richiesto. Ora, quando si apre qualsiasi altra soluzione, le opzioni rimangono "Nessuna".


1

VS2015 risucchiava il 50% della mia CPU quando era inattivo. Ho imparato che disabilitare Git era la soluzione. Sfortunatamente disabilitare Git solo per apprenderlo automaticamente lo riattiva.

Nel mio caso volevo effettivamente utilizzare Git ma non con il 50% di utilizzo della CPU.

Poiché la soluzione NoGit è disponibile solo per VS2013, puoi invece scaricare: Git Source Control Provider anche se non usi Git. Il mio utilizzo della CPU è ora del 2,2% invece del 50% quando è inattivo.


1

Ho anche problemi con Git in Visual Studio, ma penso di aver finalmente trovato una soluzione funzionante. Fino ad ora ho usato il trucco di rinominare la cartella .git in _git e aggiungere un file di testo chiamato .git contenente la riga "gitdir: _git". Ma dall'aggiornamento a VS2019 non funziona più.

Ho provato molte soluzioni diverse, ma nessuna ha funzionato poiché ho bisogno di Git per alcuni progetti e non per altri. Il mio progetto problematico sta utilizzando Team Foundation Server della mia azienda per il controllo del codice sorgente. Ma poiché ho perso il codice in unioni errate effettuate da TFS, sto inviando le mie modifiche a un repository Git locale prima di aggiornare o eseguire il commit in TFS.

D:\Projects\TFS\.git Repo git locale che VS non dovrebbe usare.

D:\Projects\TFS\ProjectA\$tf File TFS che VS dovrebbe usare per ProjectA.

Non importa come ho provato, non sono riuscito a convincere VS a usare TFS per ProjectA quando ha trovato una cartella .git in una cartella principale. La mia soluzione è spostare la cartella .git in:

D:\Projects\TFS-GIT\.git

e creare una giunzione di directory alla cartella ProjectA. Avvia un prompt dei comandi con privilegi elevati ed esegui:

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

Aprendo D:\Projects\TFS\ProjectA\ProjectA.slnin Visual Studio, non troverà alcuna cartella .git e si connetterà a TFS come dovrebbe.

L'esecuzione dei comandi git da D:\Projects\TFS-GITutilizzerà gli stessi file di Visual Studio tranne per il fatto che è disponibile anche la cartella .git. TortoiseGit funziona bene anche da questa cartella.


0

Ho avuto difficoltà a trovare una soluzione per questo, e ce l'ho fatta dopo così tanti tentativi, quindi non posso essere preciso. Crea un altro repository locale utilizzando GitHub Desktop in un'altra cartella. Fatto questo, apri Visual Studio senza caricare un progetto, ora Team Explorer dovrebbe mostrare entrambi i repository. Seleziona il nuovo repository come dovresti fare per alcune operazioni, a questo punto puoi "rimuovere" il tuo vecchio repository, poiché quello nuovo è quello "attivo". Dopo aver fatto ciò, ho rimosso i file .git * nascosti dalla cartella precedente. Ora l'apertura del progetto non causa la ricreazione del vecchio repository. Spero che questo ti aiuti.


0

È pazzesco, ma quello che ha funzionato per me è stato svuotare il cestino (che conteneva la cartella .git indesiderata della mia soluzione).

Non riesco ancora a crederci ...


0

Rinomina "C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation"

VS mostrerà l'errore solo una volta e funzionerà correttamente.


0

Questo inferno dell'estensione git rallenta tutto in IDE (VS 2015 nel mio caso). Ho dovuto rimuovere l'intera cartella TeamFoundation per sbarazzarmi di questo. Lo svantaggio è che non sarai in grado di utilizzare Git e TeamFoundation in Visual Studio 2015. Nota: fai il backup di questa cartella altrove e ripristinala quando necessario.

Per eliminare la cartella ho fatto questo. I passaggi che ho seguito per eliminare la cartella giusta

Il motivo per cui l'ho fatto è perché VS 2015 genera un nome di cartella casuale per l'estensione TeamFoundation, quindi il nome della mia cartella potrebbe essere diverso dal tuo.


-2

Strumenti, Opzioni, Controllo del codice sorgente, Selezione plug-in, Nessuno


8
Visual Studio 2013 non manterrà questa modifica. La prossima volta che aprirai la soluzione, selezionerà automaticamente il plugin Git se rileva una directory .git. Lo farà anche se la soluzione è già vincolata a TFVC.
Mark W Dickson

-4

1) chiudere la soluzione e lo studio visivo. 2) vai alla directory della soluzione ed elimina la directory git nascosta e 2 file di testo git. 3) apri di nuovo Visual Studio. 4) goto tools -> opzioni e controllo del codice sorgente. 5) seleziona nessuno. 6) riavvia Visual Studio. 7) apri la tua soluzione. 8) goto tools -> opzioni e controllo del codice sorgente di nuovo e seleziona TFS. 9) in soluzione fare clic con il pulsante destro del mouse per selezionare aggiungi controllo del codice sorgente alla soluzione. 10) seleziona tfs.


Non vogliono TFS e di certo NON VOGLIONO eliminare la cartella .git poiché cancellerà l'intera cronologia dei commit locali. Quello che chiedono è come impedire a VS di utilizzare le informazioni dalla cartella .git, non come eliminare quella cartella.
quetzalcoatl

-5

Imposta nuovamente Strumenti \ Opzioni \ Controllo codice sorgente su TFS. Chiudi Visual Studio 2015. Apri la cartella principale del tuo codice sorgente. Elimina la cartella denominata ".git". Ricomincia.


4
Sembra che tu stia chiedendo all'operatore di rimuovere completamente la cartella da git. "Preferisco gestire il mio controllo del codice sorgente dalla riga di comando" sembra indicare che non sarebbe la soluzione per lui.
Evren Kuzucuoglu
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.