Wie können Sie die Git-Integration in Visual Studio 2013 dauerhaft deaktivieren?

113

Ich weiß, dass Sie die Git-Integration mithilfe des Dialogfelds "Extras / Optionen" deaktivieren können. Mir ist jedoch aufgefallen, dass diese Einstellung nicht über Sitzungen hinweg zu bestehen scheint. Das heißt, sobald die Lösung geschlossen und erneut geöffnet wird, wird die Git-Integration wieder aktiviert. Ich vermute, Visual Studio sieht den Ordner .git in meinem Lösungsdateisystembaum.

Es gibt eine Vielzahl von Visual Studio 2013-Plugins, die sich falsch verhalten, wenn das Git-Plug-In aktiviert ist. Ich bevorzuge es, meine Quellcodeverwaltung über die Befehlszeile zu verwalten, und ich arbeite an einigen sehr großen Projekten, bei denen die Git-Integration spürbare Verlangsamungen verursacht beim Öffnen und Arbeiten mit der Lösung. Ich möchte es für immer ausschalten, da ich es einfach nicht benutze oder brauche. Ist das möglich?

Bryan Porter
quelle
1
Möglicherweise nützlich: Um das Problem zu beheben, habe ich die Erweiterung deaktiviert und dann die Quellcodeverwaltung mit der Funktion 'Binden' des Befehls 'Quellcodeverwaltung ändern' geändert. Weitere Informationen finden Sie unter
Tom Kerr
1
Das ist der Trick - in Visual Studio 2013 wird die Git-Integration nicht als Erweiterung bereitgestellt, sondern direkt eingebrannt. Die Erweiterung kann nicht deaktiviert werden, da keine zu deaktivierende Erweiterung vorhanden ist. Boo!
Bryan Porter
Vielleicht könnten Sie es automatisieren?
klumsy
Ich könnte, aber welchen Auslöser würde ich verwenden, um die Automatisierung auszuführen? Eine Erweiterung, die unter Last ausgelöst wird? Das Schreiben einer Erweiterung zum Deaktivieren einer OOB-Funktion fühlt sich seltsam an.
Bryan Porter
1
Mein Team hatte auch dieses Problem. Ich denke, der Trick, den wir verwendet haben, war, eine Lösung zu laden, die Git-Integration zu deaktivieren und dann VS neu zu starten. Sie können auch versuchen, SP 1 zu installieren.
Ade Miller

Antworten:

90

Wie Sie sagten, können Sie das Quellcodeverwaltungs-Plugin deaktivieren, indem Sie:

  • Werkzeug-Optionen
  • Aktivieren Sie "Alle Einstellungen anzeigen".
  • Quellcodeverwaltung / Plug-In-Auswahl
  • Setzen Sie "Current Source Control Plug-In" auf "None".

Dann, wie Ade Miller sagt: Starten Sie Visual Studio neu.

Mein Visual Studio arbeitete sehr langsam, da das Git-Plugging aktiviert war und ich es nach diesen Schritten "dauerhaft über Sitzungen hinweg" deaktivieren konnte.

Ich hoffe es hilft.

Aebsubis
quelle
42
Ich finde, dass VS GIT beim erneuten Öffnen der Lösung einfach wieder aktiviert. Außerdem funktioniert die unten erwähnte NoGit-Erweiterung nicht. Hmm.
Mackenir
Ich habe das gleiche Problem. VS aktiviert die GIT-Integration beim VS-Neustart einfach wieder. Beachten Sie, dass ich es jetzt Dutzende Male wie oben beschrieben deaktiviert habe. (es kommt immer wieder zurück)
Venryx
1
es aktiviert es auch für mich wieder. Anscheinend hat jemand eine Erweiterung geschrieben, die sie beim Start deaktiviert. verrückt! stackoverflow.com/questions/22459959/… . Ein weiterer Hack in diesem Link besteht darin, die Berechtigung für die Anbieter-DLL "Jeder" zu entfernen: C: \ Programme (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Microsoft.TeamFoundation.Git.Provider. dll
Sonic Soul
3
Ich habe festgestellt, dass das Öffnen des Team Explorer-Fensters es für mich wieder aktiviert hat. Also habe ich einfach dieses Fenster geschlossen und die Option wieder auf Keine gesetzt. Hoffentlich wird VS nicht versuchen, mir in diesem Fall wieder zu "helfen".
Sean
Da keine Lösungen geladen waren, habe ich die Einstellung für das Quellcodeverwaltungs-Plugin von Git wieder auf Keine geändert. Ich habe dann Visual Studio neu gestartet (immer noch ohne Lösung) und die Einstellung überprüft. Es war jetzt Visual Studio Team Foundation Server. Ich habe es wieder auf "Keine" gesetzt und VS erneut gestartet, und diesmal scheint es hängen geblieben zu sein.
Adrian McCarthy
52

Ich hatte das gleiche Problem mit Visual Studio 2015, wo die NoGit-Erweiterung nicht einmal installiert werden durfte. Ich verwende die Option "Letzte Lösung beim Start öffnen", also dachte ich, dass dies möglicherweise irgendwie mit dem Problem zusammenhängt.

Also habe ich einfach meine Lösung geschlossen , bevor Sie auf „Extras - Optionen - Source Control“ geht, dann drehte es ab, neu gestartet VS und - voila, SC blieb ausgeschaltet! Hoffe, dass es auch bei anderen Lösungen so bleibt.

Artalus
quelle
2
Tausendmal so. Kein Registrierungs-Hack, keine benutzerdefinierte Erweiterung, das funktioniert. Vielen Dank !
Driis
1
Ich musste dies mit einer anderen Sache kombinieren: Ich habe meine VisualStudio-Startmenüverknüpfung aktualisiert, um dieses Befehlszeilenflag einzuschließen : /ResetSettings "C:\Users\myuserid\Documents\Visual Studio 2015\Settings\CurrentSettings.vssettings". Gemäß der Befehlszeilenreferenz wird diese Einstellung "Stellt die Standardeinstellungen der IDE wieder her und wird optional auf die angegebene VSSettings-Datei zurückgesetzt." Das scheint sicherzustellen, dass meine gewünschten Einstellungen immer angewendet werden.
mcw
4
Vielen Dank! Das hat bei mir funktioniert. Noch ein Hinweis: Schließen Sie unbedingt die Registerkarte Team Viewer auf der rechten Seite (neben dem Projektmappen-Explorer), bevor Sie dies tun. Andernfalls wird sie automatisch wieder aktiviert, wenn Sie darauf klicken.
ForOhFor
2
Stellen Sie sicher, dass Sie den Run-Away-Prozess devenv.exe beenden, der nach einem VS-Absturz andauert und mindestens eine CPU blockiert. Andernfalls können Sie dies immer wieder tun und es bleibt nicht hängen. Aber so glücklich, wenn es so ist und kein Registrierungs-Hack erforderlich ist!
Atters
19

Für mich behebt das Erstellen des Repositorys mit dem folgenden Befehl das Problem:

git init --separate-git-dir _git

Da kein .git Verzeichnis erstellt wird , wird nur eine .git Datei angezeigt, die auf das reale Repository-Verzeichnis verweist, z.

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

Visual Studio (zumindest bis zu VS2015 Update 3, das ich verwende) bemerkt es nicht!

Dies funktionierte besser als die Umgebungsvariablen, da Git Extensions (die ich verwende) Probleme hatten, dies zu unterstützen, aber die .gitDatei, die auf einen _gitOrdner zeigte, perfekt behandelte.

Alex
quelle
Einverstanden, ich würde mich auch lieber nicht mit den Umgebungsvariablen herumschlagen. Das funktioniert gut.
Kaveman
Ich werde hinzufügen, dass es oben einen leichten Tippfehler gibt, die Option ist--separate-git-dir
Kaveman
2
Tolle Problemumgehung! Gott sei Dank hat VS2013 das Lesen dieses .git"dateisystemunabhängigen Git-Symbol-Links zum Repository" nicht implementiert , sonst hätten wir das gleiche Problem gefunden.
KurzedMetal
2
Dies ist in der Tat die einfachste Lösung, die es in der gesamten Antwortkette gibt.
Tarik
1
Vielen Dank für den Hinweis! Da die Visual Studio-Erweiterung "NoGit" nicht mit VS 2017 funktioniert, ist dies die einzige Möglichkeit für mich, VS 2017 von der "Git-Überwachung" abzuhalten :-) Danke! 👍
Ruslan
11

Ein Grund dafür, dass der Git-SCC in VS2015 bei jedem Laden der IDE wieder aktiviert wird, ist CodeLens. Extras / Optionen / Texteditor / Alle Sprachen / CodeLens Es gibt ein Kontrollkästchen für verschiedene Aktivitäten mit TFVS und Git. Wenn eines dieser Git-Kontrollkästchen aktiviert ist, wird das Git-Plugin automatisch aktiviert, wenn Sie glauben, an einem Git-Repo zu arbeiten.

John Brett
quelle
Eine funktionierende (für mich) Antwort, die nicht bedeutet, die Lösung aus der Quellcodeverwaltung zu entfernen oder die VS-Installation zu beschädigen.
Evren Kuzucuoglu
Dies ist die richtige Lösung.
Juan Pablo Califano
Dies ist sehr wichtig, da ich gesehen habe, dass Visual Studio 2017 die triviale Sache des Deaktivierens der Quellcodeverwaltung überschreibt. Aber es scheint, dass VS 2017 auch danach einen .vsOrdner erstellt.
Royi
8

Die NoGit Visual Studio-Erweiterung behandelt dieses Verhalten.

Bonus: tolle Beschreibung.

mxmissile
quelle
es funktioniert leider nicht mehr mit VS2013 SP3
thumbmunkeys
Ich verwende VS 2013 Update 4 und es funktioniert immer noch gut für mich.
mxmissile
Ich habe die Git-Integration mit den Git-Informationen in Codelens verwechselt ... danke für die Klarstellung!
Thumbmunkeys
3
Unterstützt auch 2015 nicht
Ben Wilde
@ BenWilde Neue Version funktioniert mit VS 2015 Update 1 (hier: github.com/hmemcpy/nogit )
Ruslan Garipov
8

Für Visual Studio 2015 stellte ich fest, dass CodeLens das Git Source Control-Plugin nach dem Neustart wieder aktiviert. Das Deaktivieren von CodeLens hat dies behoben.

Ed Andersen
quelle
Dies ist wichtig, um GIT in Visual Studio 2017 zu deaktivieren.
Royi
6

(Update: Diese Antwort bietet jetzt eine voll funktionsfähige Lösung, die auf meinem tieferen Verständnis von GIT_DIR und GIT_WORK_TREE basiert.)

Zusammenfassung: Git ist so flexibel, dass Sie .gitdas Verzeichnis mit den aus tfs ausgecheckten Dateien an einen Ort außerhalb des Arbeitsverzeichnisses verschieben können. Dies ermöglicht dann eine 100% saubere tfs-Kasse ohne Spuren von Git, die Visual Studio erkennen kann, während es dennoch als Git-Repository betrieben werden kann. Der Schlüssel besteht darin, das Git-Verzeichnis (Git-Repository-Speicher) und den Arbeitsbaum (Ihren ausgecheckten Quellcode) zu trennen.

Angenommen, Ihr Quellcode ist eingecheckt c:\work\someproject\tfscodeund Sie haben ihn bereits ausgeführt git init. Beispielsweise erkennt Visual Studio das c:\work\someproject\tfscode\.gitVerzeichnis und dies verursacht Probleme.

Um das Leben angenehmer zu gestalten, gehen Sie wie folgt vor:

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

Dies funktioniert perfekt in Bezug auf Visual Studio, da es dann nichts über alles weiß, was in Git gespeichert ist.

hlovdal
quelle
Übrigens, git-tf mag die Cygwin-Pfade natürlich nicht. Verwenden GIT_...=c:/work/...Sie diese Option, wenn Sie git tf verwenden möchten.
Hlovdal
Das ist großartig, aber ich musste den Pfad c: / work / ... style anstelle von \ c \ work \ .. style verwenden.
Zumalifeguard
6

Dies hat bei mir in Visual Studio 2013 und 2015 funktioniert. Bleibt bestehen, obwohl Sie Visual Studio schließen und erneut öffnen.

  1. Öffnen Sie die Lösung

  2. Gehen Sie zu Extras -> Optionen -> Quellcodeverwaltung -> Setzen Sie das Plugin auf Keine

  3. Schließen Sie Visual Studio und führen Sie den folgenden Befehl mit Administratorrechten aus.

Verschieben Sie "C: \ Programme (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Microsoft.TeamFoundation.Git.Provider.dll" "C: \ Programme (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Microsoft.TeamFoundation.Git.Provider.dll.bak "
sb.olofsson
quelle
VS 2015 Update 1: MSFT TFS-Anbieter funktioniert danach nicht mehr
Ruslan Garipov
... oder Sie können CodeLens einfach deaktivieren, wie @John Brett vorschlägt.
Mike
6

Entfernen Sie den Microsoft GitProvider aus Visual Studio 2015

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

  1. Stellen Sie sicher, dass Visual Studio geschlossen ist
  2. Öffnen Sie regedit
  3. Navigieren Sie zu HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders
  4. Löschen Sie 11b8e6d7-c08b-4385-b321-321078cdd1f8. Im Detailbereich sollte GitProvider stehen
  5. Öffnen Sie Visual Studio
Maks
quelle
1
Verbesserung dieser Antwort - Wenden Sie die folgende Registrierungsdatei an: Windows Registry Editor Version 5.00 [-HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders \ {11b8e6d7-c08b-4385-b321-321078cdd1f8}]
Ivan Shakhov
4

Ich konnte den integrierten Visual Studio Git-Provider deaktivieren, indem ich alle Vorkommen dieser Registrierungsschlüssel löschte:

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

11b8e6d7-c08b-4385-b321-321078cdd1f8

Boklucius
quelle
1
Das funktioniert bei mir! Vielen Dank! Es bleibt jedoch eine Frage: Wenn ich VS irgendwann aktualisieren werde (kleinere oder größere Aktualisierungen), muss ich die Schlüssel dann erneut löschen?
Ruslan Garipov
4

Verwenden Sie das neue NoGit-Erweiterungspaket: https://github.com/markrendle/nogit/releases/download/1.0.5/NoGit.vsix

Laden Sie Visual Studio herunter und fügen Sie es hinzu: /superuser/73675/how-do-i-install-a-vsix-file-in-visual-studio

Einfach.

Ben Wilde
quelle
Für die Installation habe ich es vorgezogen, die .vsix-Erweiterung manuell in .zip zu ändern, damit Sie mit der rechten Maustaste klicken und Dateien extrahieren können. Dann müssen Sie nur noch den neuen extrahierten Ordner in den App-Datenordner Ihres Benutzers legen (% appdata% \ Local \ Microsoft \ VisualStudio \ {version} \ Extensions). Starten Sie dann Visual Studio neu, öffnen Sie Extras-> Erweiterungen und Updates ..., suchen Sie "NoGit" und aktivieren Sie es, und starten Sie es erneut.
Ben Wilde
4

Es war eine Woche lang Rückenschmerzen und ich wusste nicht, wie ich diesen Versionsverwaltungsdienst in VS2015 gestartet habe. Aber ich musste wissen, wie ich es aufhalten kann. Hier sind die Schritte zum Entkoppeln der Git- / Quellcodeverwaltung mit VS2019.

Gehen Sie zu VS -> Extras -> Optionen -> Quellcodeverwaltung -> [Plug-In für aktuelle Quellcodeverwaltung]

Sie erhalten die gesamte mögliche Quellcodeverwaltung in Ihrem System und die Option Keine. Wenn Sie Keine wählen, sind Sie fertig. Meins wurde behoben, kurz nachdem die Option Keine ausgewählt wurde. Klicken Sie auf OK und starten Sie den VS neu und keine Quellcodeverwaltung mehr.

SRoy
quelle
3

Sie müssen alle VS-Lösungen schließen. Starten Sie eine, legen Sie Menü \ tools \ options \ Source Control \ Git -> None fest und schließen Sie diese Lösung, wenn Sie dazu aufgefordert werden. Wenn Sie jetzt eine andere Lösung öffnen, bleiben die Optionen "Keine".

Sergei Meleshchuk
quelle
1

VS2015 hat im Leerlauf 50% meiner CPU aufgebraucht. Ich habe gelernt, dass das Deaktivieren von Git die Lösung ist. Wenn Sie Git nur deaktivieren, um es automatisch zu lernen, wird es leider wieder aktiviert.

In meinem Fall wollte ich eigentlich Git verwenden, aber nicht mit 50% CPU-Auslastung.

Da die NoGit-Lösung nur für VS2013 verfügbar ist, können Sie stattdessen Folgendes herunterladen: Git Source Control Provider, auch wenn Sie Git nicht verwenden. Meine CPU-Auslastung beträgt jetzt 2,2% statt 50% im Leerlauf.

bluee
quelle
1

Ich habe auch Probleme mit Git in Visual Studio, aber ich glaube, ich habe endlich eine funktionierende Lösung gefunden. Bisher habe ich den Trick angewendet, den Ordner .git in _git umzubenennen und eine Textdatei mit dem Namen .git hinzuzufügen, die die Zeile "gitdir: _git" enthält. Aber seit dem Upgrade auf VS2019 funktioniert das nicht mehr.

Ich habe viele verschiedene Lösungen ausprobiert, aber keine hat funktioniert, da ich Git für einige Projekte und nicht für andere benötige. Mein Problemprojekt ist die Verwendung des Team Foundation Servers meines Unternehmens für die Quellcodeverwaltung. Da ich jedoch Code durch fehlerhafte Zusammenführungen von TFS verloren habe, übertrage ich meine Änderungen an ein lokales Git-Repo, bevor ich TFS aktualisiere oder festschreibe.

D:\Projects\TFS\.git Lokales Git-Repo, das VS nicht verwenden sollte.

D:\Projects\TFS\ProjectA\$tf TFS-Dateien, die VS für ProjectA verwenden soll.

Egal wie ich es versuchte, ich konnte VS nicht dazu bringen, TFS für ProjectA zu verwenden, als es einen .git-Ordner in einem übergeordneten Ordner fand. Meine Lösung besteht darin, den Ordner .git in Folgendes zu verschieben:

D:\Projects\TFS-GIT\.git

und erstellen Sie eine Verzeichnisverbindung zum ProjectA-Ordner. Starten Sie eine Eingabeaufforderung mit erhöhten Rechten und führen Sie Folgendes aus:

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

Wenn Sie das D:\Projects\TFS\ProjectA\ProjectA.slnin Visual Studio öffnen, wird kein .git-Ordner gefunden und es wird eine Verbindung zu TFS hergestellt, wie es sollte.

Wenn Sie git-Befehle von ausführen, D:\Projects\TFS-GITwerden dieselben Dateien wie in Visual Studio verwendet, außer dass der Ordner .git ebenfalls verfügbar ist. TortoiseGit funktioniert auch in diesem Ordner einwandfrei.

Anlo
quelle
0

Es fiel mir schwer, eine Lösung dafür zu finden, und ich habe es nach so vielen Versuchen geschafft, dass ich nicht genau sein kann. Erstellen Sie ein anderes lokales Repository mit GitHub Desktop in einem anderen Ordner. Öffnen Sie anschließend Visual Studio, ohne ein Projekt zu laden. Jetzt sollte Team Explorer beide Repositorys anzeigen. Wählen Sie das neue Repository aus, da Sie einige Vorgänge ausführen sollten. An diesem Punkt können Sie Ihr altes Repository "entfernen", da das neue das "aktive" ist. Danach habe ich die versteckten .git * -Dateien aus dem vorherigen Ordner entfernt. Wenn Sie das Projekt jetzt öffnen, wird das alte Repository nicht erneut erstellt. Hoffe das hilft.

Stefano Losi
quelle
0

Das ist verrückt, aber was für mich funktioniert hat, war, meinen Papierkorb zu leeren (der den unerwünschten .git-Ordner meiner Lösung enthielt).

Ich kann es immer noch nicht glauben ...

Jérôme MEVEL
quelle
0

Benennen Sie "C: \ Programme (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation" um.

VS zeigt nur einmal einen Fehler an und funktioniert einwandfrei.

Ivan Shakhov
quelle
0

Diese Hölle der Git-Erweiterung verlangsamt alles in der IDE (in meinem Fall VS 2015). Ich musste den gesamten TeamFoundation-Ordner entfernen, um dies zu beseitigen. Der Nachteil ist, dass Sie Git und TeamFoundation in Visual Studio 2015 nicht verwenden können. Hinweis: Sichern Sie diesen Ordner an einer anderen Stelle und stellen Sie ihn bei Bedarf wieder her.

Um den Ordner zu löschen, habe ich dies getan. Die Schritte, die ich befolgt habe, um den richtigen Ordner zu löschen

Der Grund, warum ich dies getan habe, ist, dass VS 2015 einen zufälligen Ordnernamen für die TeamFoundation-Erweiterung generiert, sodass mein Ordnername möglicherweise von Ihrem abweicht.

Soundararajan
quelle
-2

Tools, Optionen, Quellcodeverwaltung, Plug-In-Auswahl, Keine

Dale Fraser
quelle
8
Visual Studio 2013 wird diese Änderung nicht beibehalten. Wenn Sie die Lösung das nächste Mal öffnen, wird das Git-Plugin automatisch erneut ausgewählt, wenn ein .git-Verzeichnis erkannt wird. Dies ist sogar dann der Fall, wenn die Lösung bereits an TFVC gebunden ist.
Mark W Dickson
-4

1) Lösung und visuelles Studio schließen. 2) Gehen Sie zum Verzeichnis der Lösung und löschen Sie das versteckte Git-Verzeichnis und 2 Git-Textdateien. 3) Visual Studio wieder öffnen. 4) gehe zu Tools -> Optionen und Quellcodeverwaltung. 5) Wählen Sie keine aus. 6) Starten Sie Visual Studio neu. 7) Öffnen Sie Ihre Lösung. 8) Gehen Sie erneut zu Tools -> Optionen und Quellcodeverwaltung und wählen Sie TFS. 9) Klicken Sie in der Lösung mit der rechten Maustaste, um Quellcodeverwaltung zur Lösung hinzufügen auszuwählen. 10) Wählen Sie tfs.

user1813748
quelle
Sie wollen kein TFS und wollen auf keinen Fall den .git-Ordner löschen, da dadurch der gesamte lokale Commit-Verlauf gelöscht wird. Sie fragen, wie verhindert werden kann, dass VS Informationen aus dem .git-Ordner verwendet, und nicht, wie dieser Ordner gelöscht wird.
Quetzalcoatl
-5

Setzen Sie Tools \ Options \ Source Control wieder auf TFS. Schließen Sie Visual Studio 2015. Öffnen Sie den Stammordner Ihres Quellcodes. Löschen Sie den Ordner ".git". Neustart.

Charlie Benson
quelle
4
Das klingt so, als würden Sie die Operation bitten, den Ordner vollständig aus Git zu entfernen. "Ich bevorzuge es, meine Quellcodeverwaltung über die Befehlszeile zu verwalten" scheint darauf hinzudeuten, dass dies nicht die Lösung für ihn wäre.
Evren Kuzucuoglu