Jak trwale wyłączyć integrację Git w programie Visual Studio 2013?

113

Wiem, że możesz wyłączyć integrację git za pomocą okna dialogowego Narzędzia / Opcje, ale zauważyłem, że to ustawienie nie wydaje się utrzymywać między sesjami; tj. po zamknięciu i ponownym otwarciu rozwiązania integracja z Git jest ponownie włączana. Zgaduję, że program Visual Studio widzi folder .git w drzewie systemu plików mojego rozwiązania.

Istnieje wiele wtyczek Visual Studio 2013, które działają niepoprawnie, gdy wtyczka Git jest włączona, wolę zarządzać kontrolą źródła z wiersza poleceń i pracuję nad kilkoma bardzo dużymi projektami, dla których integracja z Git wprowadza zauważalne spowolnienia w otwieraniu i pracy z rozwiązaniem. Chciałbym to wyłączyć na dobre, bo po prostu go nie używam lub nie potrzebuję. czy to możliwe?

Bryan Porter
źródło
1
prawdopodobnie przydatne: Aby to naprawić, wyłączyłem rozszerzenie, a następnie zmieniłem kontrolę źródła za pomocą funkcji ``
Tom Kerr,
1
Na tym polega sztuczka - w programie Visual Studio 2013 integracja z Git nie jest udostępniana jako rozszerzenie, jest od razu wprowadzona. Nie można wyłączyć rozszerzenia, ponieważ nie ma rozszerzenia do wyłączenia. Gwizd!
Bryan Porter,
może mógłbyś to zautomatyzować?
niezdarny
Mógłbym, ale jakiego wyzwalacza użyłbym do wykonania automatyzacji? Rozszerzenie, które uruchamia się po załadowaniu? Pisanie rozszerzenia wyłączającego funkcję OOB wydaje się dziwne.
Bryan Porter,
1
Mój zespół też miał ten problem. Myślę, że sztuczka, której użyliśmy, polegała na załadowaniu rozwiązania, wyłączeniu integracji git i ponownym uruchomieniu VS. Możesz także spróbować zainstalować SP 1.
Ade Miller

Odpowiedzi:

90

Jak powiedziałeś, możesz wyłączyć wtyczkę kontroli źródła, przechodząc do:

  • Narzędzia / Opcje
  • Zaznacz „Pokaż wszystkie ustawienia”
  • Kontrola źródła / wybór wtyczki
  • Ustaw opcję „Wtyczka sterująca źródłem prądu” na „Brak”

Następnie, jak mówi Ade Miller: Uruchom ponownie Visual Studio.

Mój program Visual Studio działał bardzo wolno, ponieważ włączono podłączanie git i udało mi się go wyłączyć „trwale między sesjami”, wykonując następujące kroki.

Mam nadzieję, że to pomoże.

Aebsubis
źródło
42
Uważam, że VS po prostu ponownie włącza GIT podczas ponownego otwierania rozwiązania. Ponadto wymienione poniżej rozszerzenie NoGit nie działa. Hmm.
mackenir
Mam ten sam problem. VS po prostu ponownie włącza integrację GIT przy ponownym uruchomieniu VS. Zauważ, że wyłączyłem go teraz, jak opisano powyżej, dziesiątki razy. (ciągle wraca)
Venryx
1
umożliwia to również mi. najwyraźniej ktoś napisał rozszerzenie, które wyłącza go na starcie. zwariowany! stackoverflow.com/questions/22459959/… . innym hackem w tym odsyłaczu jest usunięcie uprawnień od Wszyscy dla biblioteki dll dostawcy: C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Microsoft.TeamFoundation.Git.Provider. dll
Sonic Soul
3
Zauważyłem, że otwarcie okna Team Explorer ponownie włączyło to dla mnie. Po prostu zamknąłem to okno i zmieniłem opcję z powrotem na Brak. Miejmy nadzieję, że VS nie spróbuje znowu mi „pomóc” w tej sprawie.
Sean
Bez załadowanych rozwiązań zmieniłem ustawienie wtyczki kontroli źródła z Git z powrotem na Brak. Następnie ponownie uruchomiłem program Visual Studio (nadal bez rozwiązania) i sprawdziłem ustawienie, a teraz był to Visual Studio Team Foundation Server. Ustawiłem ponownie na Brak i ponownie uruchomiłem VS, i tym razem wydaje się, że utknął.
Adrian McCarthy,
52

Miałem ten sam problem z Visual Studio 2015, gdzie rozszerzenie NoGit nie było nawet dozwolone. Używam opcji „otwórz ostatnie rozwiązanie przy starcie”, więc pomyślałem, że może to jest w jakiś sposób związane z problemem.

Więc po prostu zamknąłem moje rozwiązanie przed przejściem do "Narzędzia - Opcje - Kontrola źródła", potem je wyłączyłem, zrestartowałem VS i - voila, SC pozostał wyłączony! Mam nadzieję, że tak pozostanie również w innych rozwiązaniach.

Artalus
źródło
2
Tysiąc razy to. Bez hackowania rejestru, bez niestandardowego rozszerzenia, to działa. Dzięki !
driis
1
Musiałem połączyć to z jednej rzeczy: Po zaktualizowaniu mojego menu start skrót VisualStudio włączenie tej flagi wiersza polecenia: /ResetSettings "C:\Users\myuserid\Documents\Visual Studio 2015\Settings\CurrentSettings.vssettings". Zgodnie z odwołaniem do wiersza polecenia to ustawienie „Przywraca domyślne ustawienia środowiska IDE, opcjonalnie resetuje do określonego pliku VSSettings”. Wydaje się, że zapewnia to, że moje żądane ustawienia są zawsze stosowane.
mcw,
4
Dzięki! To zadziałało dla mnie. Kolejna uwaga - pamiętaj, aby zamknąć kartę Team Viewer po prawej stronie (obok Solution Explorer), zanim to zrobisz, lub automatycznie włączy się ponownie, jeśli ją klikniesz.
ForOhFor
2
Upewnij się, że zabiłeś proces ucieczki devenv.exe, który utrzymuje się po awarii VS, pozostawiając przypięty co najmniej jeden z procesorów, w przeciwnym razie możesz to robić w kółko i nie będzie się trzymać. Ale tak się cieszę, kiedy to robi i nie jest wymagane włamanie do rejestru!
Atters
19

Dla mnie utworzenie repozytorium za pomocą następującego polecenia napraw problem:

git init --separate-git-dir _git

Ponieważ nie tworzy .git katalogu , tylko .git plik wskazujący na prawdziwy katalog repozytorium, np .:

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

Visual Studio (przynajmniej do VS2015 Update 3, którego używam) nie zauważa tego!

To działało lepiej niż zmienne środowiskowe, ponieważ rozszerzenia Git (których używam) miały problem z obsługą tego, ale radziły sobie z .gitplikiem wskazującym _gitfolder doskonale.

Alex
źródło
Zgoda, wolałbym też nie majstrować przy zmiennych środowiskowych. To działa ładnie.
kaveman
Dodam, że powyżej jest drobna literówka, opcja to--separate-git-dir
kaveman
2
Niesamowite obejście! Dzięki Bogu, VS2013 nie zaimplementował odczytu tego .git"dowiązania symbolicznego Git do repozytorium niezależnego od systemu plików", inaczej znaleźlibyśmy ten sam problem.
KurzedMetal
2
To jest rzeczywiście najprostsze rozwiązanie istniejące w całym łańcuchu odpowiedzi.
Tarik
1
Wielkie dzięki za podpowiedź! Ponieważ rozszerzenie `NoGit 'Visual Studio nie działa z VS 2017, jest to jedyny sposób, aby zatrzymać VS 2017 przed" monitorowaniem git ":-) Dzięki! 👍
Ruslan
11

Jednym z powodów ponownego włączania git SCC w VS2015 za każdym razem, gdy ładuje się IDE, jest CodeLens. Narzędzia / Opcje / Edytor tekstu / Wszystkie języki / CodeLens Istnieje pole wyboru dla różnych działań związanych z TFVS i Git - zaznaczenie któregokolwiek z tych pól wyboru git automatycznie włączy wtyczkę Git, jeśli podejrzewa, że ​​pracujesz nad repozytorium git.

John Brett
źródło
Działa (dla mnie) odpowiedź, która nie sugeruje usunięcia rozwiązania z kontroli źródła ani uszkodzenia instalacji VS.
Evren Kuzucuoglu,
To jest właściwe rozwiązanie.
Juan Pablo Califano,
Jest to naprawdę ważne, ponieważ widziałem, że program Visual Studio 2017 zastępuje trywialną kwestię wyłączenia kontroli źródła. Ale wydaje się, że nawet po tym VS 2017 tworzy .vsfolder.
Royi,
8

Rozszerzenie NoGit Visual Studio obsługuje to zachowanie.

Bonus: niesamowity opis.

mxmissile
źródło
niestety nie działa już z VS2013 SP3
thumbmunkeys
Używam VS 2013 Update 4 i nadal działa dobrze.
mxmissile
Pomyliłem integrację gita z informacjami o git wyświetlanymi w codelens ... dzięki za wyjaśnienie!
thumbmunkeys
3
Nie obsługuje też 2015 roku
Ben Wilde
@BenWilde Nowa wersja współpracuje z VS 2015 Update 1 ( pobierz to tutaj: github.com/hmemcpy/nogit )
Ruslan Garipov
8

W przypadku programu Visual Studio 2015 stwierdziłem, że CodeLens ponownie włącza wtyczkę Git Source Control po ponownym uruchomieniu. Wyłączenie CodeLens rozwiązało ten problem.

Ed Andersen
źródło
Jest to ważne, aby wyłączyć GIT w programie Visual Studio 2017. Świetny chwyt!
Royi
6

(Aktualizacja: ta odpowiedź zapewnia teraz w pełni działające rozwiązanie oparte na moim głębszym zrozumieniu GIT_DIR i GIT_WORK_TREE)

Podsumowanie: Git jest na tyle elastyczny, że możesz przenieść .gitkatalog do miejsca poza katalogiem roboczym z wypisanymi plikami z tfs. Dzięki temu możliwe jest w 100% czyste pobranie tfs bez żadnych śladów git, które Visual Studio jest w stanie wykryć, a jednocześnie może obsługiwać je jako repozytorium git. Kluczem jest oddzielenie katalogu git (magazyn repozytorium git) i drzewa roboczego (wyewidencjonowany kod źródłowy).

Powiedz, że Twój kod źródłowy jest wyewidencjonowany c:\work\someproject\tfscodei już go uruchomiłeś git init, np. Visual Studio wykrywa c:\work\someproject\tfscode\.gitkatalog i powoduje problemy.

Aby życie było przyjemniejsze, wykonaj następujące czynności:

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

Działa to doskonale w przypadku studia wizualnego, ponieważ wtedy całkowicie ignoruje wszystko, co jest przechowywane w git.

hlovdal
źródło
Nawiasem mówiąc, git-tf naturalnie nie lubi ścieżek cygwin, więc użyj, GIT_...=c:/work/...jeśli planujesz używać git tf.
hlovdal
To jest świetne, ale chciałbym użyć ścieżki stylu c: / work / ... zamiast \ c \ work \ .. style.
zumalifeguard
6

To zadziałało dla mnie w Visual Studio 2013 i 2015. Utrzymuje się, mimo że zamykasz i ponownie otwierasz program Visual Studio.

  1. Otwórz rozwiązanie

  2. Idź do Narzędzia -> Opcje -> Kontrola źródła -> Ustaw wtyczkę na Brak

  3. Zamknij program Visual Studio i wykonaj poniższe polecenie z uprawnieniami administratora.

przenieś "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 ”
sb.olofsson
źródło
VS 2015 Update 1: Dostawca MSFT TFS nie działa po tym
Ruslan Garipov
... lub możesz po prostu wyłączyć CodeLens, jak sugeruje @John Brett.
mike
6

Usuń Microsoft GitProvider z Visual Studio 2015

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

  1. Upewnij się, że program Visual Studio jest zamknięty
  2. Otwórz regedit
  3. Przejdź do HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders
  4. Usuń 11b8e6d7-c08b-4385-b321-321078cdd1f8 W okienku szczegółów powinno być napisane GitProvider
  5. Otwórz program Visual Studio
Maks
źródło
1
ulepszenie tej odpowiedzi - zastosuj następujący plik rejestru Edytor rejestru systemu Windows w wersji 5.00 [-HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders \ {11b8e6d7-c08b-4385-b321-321078cdd1f8}]
Ivan Atakhov
4

Udało mi się wyłączyć wbudowanego dostawcę Visual Studio Git, usuwając wszystkie wystąpienia tych kluczy rejestru:

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

11b8e6d7-c08b-4385-b321-321078cdd1f8

Boklucius
źródło
1
To działa dla mnie! Dzięki! Pozostaje jednak jedno pytanie: czy w końcu zaktualizuję VS (robiąc mniejszą lub większą aktualizację), czy będę musiał ponownie usunąć klucze?
Ruslan Garipov
4

Użyj nowego pakietu rozszerzeń NoGit: https://github.com/markrendle/nogit/releases/download/1.0.5/NoGit.vsix

Pobierz i dodaj do Visual Studio: /superuser/73675/how-do-i-install-a-vsix-file-in-visual-studio

Łatwo.

Ben Wilde
źródło
Aby zainstalować, wolałem ręcznie zmienić rozszerzenie .vsix na .zip, aby można było kliknąć prawym przyciskiem myszy i wyodrębnić pliki. Następnie wszystko, co musisz zrobić, to umieścić nowy wyodrębniony folder w folderze danych aplikacji użytkownika (% appdata% \ Local \ Microsoft \ VisualStudio \ {wersja} \ Extensions). Następnie uruchom ponownie program Visual Studio, otwórz Narzędzia-> Rozszerzenia i aktualizacje ..., a następnie znajdź „NoGit” i włącz go, a następnie uruchom ponownie.
Ben Wilde
4

Przez tydzień bolały mnie plecy i nie wiedziałem, jak uruchomiłem tę usługę kontroli źródła w VS2015. Ale dowiedziałem się, jak to powstrzymać. Oto kroki, aby oddzielić git / dowolną kontrolę źródła za pomocą VS2019.

Przejdź do VS -> Narzędzia -> Opcje -> Kontrola źródła -> [Obecna wtyczka kontroli źródła]

Otrzymujesz całą możliwą kontrolę źródła w swoim systemie i opcję Brak. Jeśli wybierzesz opcję Brak, wszystko jest ustawione. Mój został naprawiony zaraz po wybraniu opcji Brak, naciśnij OK i zrestartuj VS i nie będzie już kontroli źródła.

SRoy
źródło
3

Musisz zamknąć wszystkie rozwiązania VS. uruchom jedno, ustaw Menu \ narzędzia \ opcje \ Kontrola źródła \ Git -> Brak, zamknij to rozwiązanie po wyświetleniu monitu. Teraz, podczas otwierania dowolnego innego rozwiązania, opcja pozostaje „Brak”.

Siergiej Meleszczuk
źródło
1

VS2015 wysysał 50% mojego procesora w stanie bezczynności. Dowiedziałem się, że rozwiązaniem było wyłączenie Gita. Niestety wyłączenie Gita tylko po to, aby nauczyć się go automatycznie włączać ponownie.

W moim przypadku faktycznie chciałem użyć Gita, ale nie przy 50% wykorzystaniu procesora.

Ponieważ rozwiązanie NoGit jest dostępne tylko dla VS2013, możesz zamiast tego pobrać: Git Source Control Provider, nawet jeśli nie używasz Git. Moje użycie procesora wynosi teraz 2,2% zamiast 50% w stanie bezczynności.

bluee
źródło
1

Mam również problemy z Git w Visual Studio, ale myślę, że w końcu znalazłem działające rozwiązanie. Do tej pory korzystałem ze sztuczki polegającej na zmianie nazwy folderu .git na _git i dodaniu pliku tekstowego o nazwie .git zawierającego wiersz „gitdir: _git”. Ale od czasu aktualizacji do VS2019 to już nie działa.

Wypróbowałem wiele różnych rozwiązań, ale żadne nie działało, ponieważ potrzebuję Gita do niektórych projektów, a do innych nie. Mój projekt, w którym wystąpił problem, używa serwera Team Foundation Server mojej firmy do kontroli źródła. Ale ponieważ zgubiłem kod w złych scaleniach wykonanych przez TFS, zatwierdzam zmiany w lokalnym repozytorium Git przed aktualizacją lub zatwierdzeniem do TFS.

D:\Projects\TFS\.git Lokalne repozytorium git, którego VS nie powinien używać.

D:\Projects\TFS\ProjectA\$tf Pliki TFS, których program VS powinien używać dla ProjectA.

Bez względu na to, jak próbowałem, nie mogłem zmusić VS do używania TFS dla ProjectA, gdy znalazł folder .git w folderze nadrzędnym. Moim rozwiązaniem jest przeniesienie folderu .git do:

D:\Projects\TFS-GIT\.git

i utwórz przyłączenie katalogu do folderu ProjectA. Uruchom wiersz polecenia z podwyższonym poziomem uprawnień i uruchom:

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

Otwierając D:\Projects\TFS\ProjectA\ProjectA.slnw programie Visual Studio, nie znajdzie żadnego folderu .git i połączy się z TFS tak, jak powinien.

Uruchamianie poleceń git z programu D:\Projects\TFS-GITspowoduje użycie tych samych plików co program Visual Studio, z tą różnicą, że dostępny jest również folder .git. TortoiseGit również działa dobrze z tego folderu.

Anlo
źródło
0

Trudno mi było znaleźć rozwiązanie tego problemu i udało mi się to po tylu próbach, więc nie mogę być precyzyjny. Utwórz kolejne repozytorium lokalne za pomocą GitHub Desktop w innym folderze. Zrobione, otwórz Visual Studio bez ładowania projektu, teraz Team Explorer powinien pokazać oba repozytoria. Wybierz nowe repozytorium, tak jak powinieneś wykonać niektóre operacje, na tym pont możesz "usunąć" swoje stare repozytorium, ponieważ nowe jest "aktywne". Po wykonaniu tej czynności usunąłem pliki .hidden .git * z poprzedniego folderu. Teraz otwarcie projektu nie powoduje ponownego utworzenia starego repozytorium. Mam nadzieję że to pomoże.

Stefano Losi
źródło
0

To szalone, ale to, co zadziałało, to opróżnienie mojego kosza (który zawierał niechciany folder .git mojego rozwiązania).

Nadal nie mogę w to uwierzyć ...

Jérôme MEVEL
źródło
0

Zmień nazwę „C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation”

VS pokaże błąd tylko raz i działa dobrze.

Iwan Szachow
źródło
0

To piekło z rozszerzeniem git spowalnia wszystko w IDE (w moim przypadku VS 2015). Musiałem usunąć cały folder TeamFoundation, aby się tego pozbyć. Wadą jest to, że nie będziesz mógł używać Git i TeamFoundation w Visual Studio 2015. Uwaga: Utwórz kopię zapasową tego folderu w innym miejscu i przywróć go w razie potrzeby.

Aby usunąć folder, zrobiłem to. Kroki, które wykonałem, aby usunąć właściwy folder

Powodem, dla którego to zrobiłem, jest to, że VS 2015 generuje losową nazwę folderu dla rozszerzenia TeamFoundation, więc nazwa mojego folderu może być inna niż Twoja.

Soundararajan
źródło
-2

Narzędzia, Opcje, Kontrola źródła, Wybór wtyczki, Brak

Dale Fraser
źródło
8
Visual Studio 2013 nie utrwali tej zmiany. Gdy następnym razem otworzysz rozwiązanie, automatycznie ponownie wybierze wtyczkę Git, jeśli wykryje katalog .git. Zrobi to nawet, jeśli rozwiązanie jest już powiązane z TFVC.
Mark W Dickson
-4

1) bliskie rozwiązanie i studio wizualne. 2) przejdź do katalogu rozwiązania i usuń ukryty katalog git i 2 pliki tekstowe git. 3) ponownie otwórz Visual Studio. 4) narzędzia goto -> opcje i kontrola źródła. 5) nie wybieraj żadnego. 6) zrestartuj Visual Studio. 7) otwórz swoje rozwiązanie. 8) narzędzia goto -> opcje i kontrola źródła ponownie i wybierz TFS. 9) w rozwiązaniu kliknij prawym przyciskiem myszy, aby wybrać opcję Dodaj kontrolę źródła do rozwiązania. 10) wybierz tfs.

user1813748
źródło
Nie chcą TFS i na pewno NIE CHCĄ usuwać folderu .git, ponieważ spowoduje to wymazanie całej lokalnej historii zatwierdzeń. Pytają o to, jak uniemożliwić programowi VS używanie informacji z folderu .git, a nie jak wyczyścić ten folder.
quetzalcoatl
-5

Ustaw Narzędzia \ Opcje \ Kontrola źródła z powrotem na TFS. Zamknij program Visual Studio 2015. Otwórz folder główny kodu źródłowego. Usuń folder o nazwie „.git”. Uruchom ponownie.

Charlie Benson
źródło
4
To brzmi jak prośba o całkowite usunięcie folderu z gita. „Wolę zarządzać kodem źródłowym z wiersza poleceń” wydaje się wskazywać, że nie byłoby to dla niego rozwiązaniem.
Evren Kuzucuoglu,