Как можно навсегда отключить интеграцию Git в Visual Studio 2013?

113

Я знаю, что вы можете отключить интеграцию с git, используя диалоговое окно «Инструменты / Параметры», но я заметил, что этот параметр, похоже, не сохраняется между сеансами; то есть, как только решение будет закрыто и снова открыто, интеграция с Git снова будет включена. Я предполагаю, что Visual Studio видит папку .git в дереве файловой системы моего решения.

Существует множество подключаемых модулей Visual Studio 2013, которые работают некорректно при включении подключаемого модуля Git, я предпочитаю управлять исходным кодом из командной строки и работаю над несколькими очень большими проектами, для которых интеграция с Git приводит к заметному замедлению работы. в открытии и работе с раствором. Я бы хотел его выключить навсегда, так как я им просто не пользуюсь и не нуждаюсь. Это возможно?

Брайан Портер
источник
1
возможно, полезно: чтобы исправить это, я отключил расширение, а затем изменил исходный элемент управления с помощью функции «Привязать» команды «Изменить источник управления» - см. дополнительную информацию по адресу: thereprogram.com/2013/04/18/visual-studio-tools-for- git /…
Том Керр
1
В этом весь трюк - в Visual Studio 2013 интеграция с Git не предоставляется как расширение, она встроена прямо в нее. Невозможно отключить расширение, поскольку нет расширения, которое нужно отключить. Бу!
Брайан Портер
может ты сможешь это автоматизировать?
klumsy
Я мог бы, но какой триггер я бы использовал для выполнения автоматизации? Расширение, которое запускается при загрузке? Странно писать расширение для отключения функции OOB.
Брайан Портер
1
У моей команды тоже была эта проблема. Я думаю, что уловка, которую мы использовали, заключалась в том, чтобы загрузить решение, отключить интеграцию с git и затем перезапустить VS. Вы также можете попробовать установить SP 1.
Ад Миллер,

Ответы:

90

Как вы сказали, вы можете отключить плагин управления версиями:

  • Инструменты / Параметры
  • Установите флажок "Показать все настройки".
  • Управление исходным кодом / выбор плагина
  • Установите для параметра "Текущий подключаемый модуль управления версиями" значение "Нет".

Затем, как говорит Адэ Миллер: перезапустите Visual Studio.

Моя Visual Studio работала очень медленно, так как git plugging был включен, и мне удалось отключить его «постоянно между сеансами», выполнив следующие действия.

Надеюсь, поможет.

Aebsubis
источник
42
Я обнаружил, что VS просто повторно включает GIT при повторном открытии решения. Кроме того, указанное ниже расширение NoGit не работает. Хм.
mackenir
У меня та же проблема. VS просто повторно включает интеграцию GIT при перезапуске VS. Обратите внимание, что я уже десятки раз отключал его, как описано выше. (он продолжает возвращаться)
Venryx
1
он снова включает его и для меня. видимо кто-то написал расширение, отключающее его при запуске. псих! stackoverflow.com/questions/22459959/… . еще один способ взлома по этой ссылке - удалить разрешение из Все для библиотеки поставщика: C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Microsoft.TeamFoundation.Git.Provider. dll
Sonic Soul
3
Я обнаружил, что открытие окна Team Explorer снова включило его для меня. Поэтому я просто закрыл это окно и снова установил для параметра значение Нет. Надеюсь, VS больше не будет пытаться "помочь" мне в этом.
Шон
Не загрузив никаких решений, я изменил настройку плагина управления версиями с Git на None. Затем я перезапустил Visual Studio (все еще без решения) и проверил настройку, и теперь это был Visual Studio Team Foundation Server. Я снова установил для него значение «Нет» и снова перезапустил VS, и на этот раз он, похоже, застрял.
Адриан Маккарти
52

У меня была такая же проблема с Visual Studio 2015, где расширение NoGit даже не разрешалось устанавливать. Я использую опцию «открывать последнее решение при запуске», поэтому я подумал, что, возможно, это как-то связано с проблемой.

Поэтому я просто закрыл свое решение перед тем, как перейти в «Инструменты - Параметры - Контроль версий», затем выключил его, перезапустил VS и - вуаля, SC остался выключенным! Надеюсь, что это останется так и в других решениях.

Artalus
источник
2
В тысячу раз больше. Никаких взломов реестра, никаких кастомных расширений, это работает. Спасибо !
driis
1
Я должен был совместить это с еще одной вещи: я обновил свой VisualStudio меню Пуск ярлык , чтобы включить этот флаг командной строки: /ResetSettings "C:\Users\myuserid\Documents\Visual Studio 2015\Settings\CurrentSettings.vssettings". Согласно справочнику командной строки, этот параметр «Восстанавливает настройки IDE по умолчанию, при необходимости сбрасывается до указанного файла VSSettings». Кажется, это гарантирует, что мои желаемые настройки применяются всегда.
mcw 08
4
Спасибо! Это сработало для меня. Еще одно примечание - не забудьте закрыть вкладку Team Viewer справа (рядом с обозревателем решений), прежде чем сделать это, иначе он автоматически снова включится, если вы щелкните по нему.
ForOh, 03
2
Убедитесь, что вы завершили запуск процесса devenv.exe, который задерживается после сбоя VS, оставляя хотя бы один из ваших процессоров закрепленным, иначе вы можете делать это снова и снова, и он не будет зависать. Но так счастлив, когда это происходит, и никакого взлома реестра не требуется!
Atters
19

Для меня создание репозитория с помощью следующей команды решает проблему:

git init --separate-git-dir _git

Поскольку он не создает .git каталог , а только .git файл, указывающий на реальный каталог репозитория, например:

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

Visual Studio (по крайней мере, до VS2015 Update 3, которым я пользуюсь) этого не замечает!

Это сработало лучше, чем переменные среды, потому что у Git Extensions (которые я использую) возникла проблема с их поддержкой, но они отлично справились с .gitфайлом, указывающим на _gitпапку.

Alex
источник
Согласен, я бы тоже не стал связываться с переменными окружения. Это прекрасно работает.
Кавеман 03
Добавлю, что выше небольшая опечатка, вариант--separate-git-dir
kaveman 03
2
Отличное решение! Слава богу, VS2013 не реализовал чтение этой .git« не зависящей от файловой системы символической ссылки Git на репозиторий», иначе мы бы столкнулись с той же проблемой.
KurzedMetal
2
Это действительно самое простое решение из всей цепочки ответов.
Tarik
1
Большое спасибо за подсказку! Поскольку расширение Visual Studio NoGit не работает с VS 2017, это единственный способ остановить VS 2017 от "git-monitoring" :-) Спасибо! 👍
Руслан Гарипов
11

Одна из причин повторного включения git SCC в VS2015 при каждой загрузке IDE - это CodeLens. Инструменты / Параметры / Текстовый редактор / Все языки / CodeLens. Есть флажок для различных действий, связанных с TFVS и Git - установка любого из этих флажков git автоматически включит плагин Git, если он думает, что вы работаете с репозиторием git.

Джон Бретт
источник
Рабочий (для меня) ответ, который не предлагает удалить решение из системы управления версиями или повредить установку VS.
Evren Kuzucuoglu
Это правильное решение.
Хуан Пабло Калифано
Это действительно важно, поскольку я видел, что Visual Studio 2017 переопределяет тривиальную вещь по отключению системы управления версиями. Но кажется, что даже после этого VS 2017 создает .vsпапку.
Royi
8

Расширение NoGit Visual Studio обрабатывает это поведение.

Бонус: классное описание.

mxmissile
источник
к сожалению, он больше не работает с VS2013 SP3
thumbmunkeys
Я использую VS 2013 Update 4, и у меня все еще работает нормально.
mxmissile
Я перепутал интеграцию git с информацией git, показанной в кодовых линзах ... спасибо за разъяснения!
thumbmunkeys
3
Не поддерживает и 2015
Бен Уайлд
@BenWilde Новая версия работает с VS 2015 Update 1 (взять здесь: github.com/hmemcpy/nogit )
Руслан Гарипов
8

Для Visual Studio 2015 я обнаружил, что CodeLens повторно включает подключаемый модуль Git Source Control после перезапуска. Отключение CodeLens исправило это.

Эд Андерсен
источник
Это важно для отключения GIT в Visual Studio 2017. Отличный улов!
Royi
6

(Обновление: теперь этот ответ представляет собой полностью рабочее решение, основанное на моем более глубоком понимании GIT_DIR и GIT_WORK_TREE)

Резюме: Git достаточно гибкий, чтобы вы могли переместить .gitкаталог за пределы рабочего каталога с файлами, извлеченными из tfs. Это позволяет иметь 100% чистую проверку tfs без каких-либо следов git, которые визуальная студия может обнаружить, сохраняя при этом возможность использовать его как репозиторий git. Ключ состоит в том, чтобы разделить git dir (хранилище репозитория git) и дерево работ (ваш проверенный исходный код).

Скажем, ваш исходный код зарегистрирован c:\work\someproject\tfscodeи вы уже запускали git initего, например, Visual Studio обнаруживает c:\work\someproject\tfscode\.gitкаталог, и это вызывает проблемы.

Чтобы сделать жизнь приятнее, сделайте следующее:

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

Это отлично работает в отношении визуальной студии, поскольку тогда она полностью игнорирует все, что хранится в git.

Hlovdal
источник
Кстати, git-tf naturaly не любит пути cygwin, поэтому используйте, GIT_...=c:/work/...если вы планируете использовать git tf.
hlovdal
Это здорово, но я бы предпочел использовать путь стиля c: / work / ... вместо стиля \ c \ work \ ...
zumalifeguard
6

Это сработало для меня в Visual Studio 2013 и 2015. Сохраняется, даже если вы закрываете и снова открываете Visual Studio.

  1. Откройте решение

  2. Перейдите в Инструменты -> Параметры -> Управление исходным кодом -> Установить для плагина значение Нет.

  3. Закройте Visual Studio и выполните команду ниже с правами администратора.

переместите "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
источник
VS 2015 Обновление 1: после этого провайдер MSFT TFS не работает
Руслан Гарипов
... или вы можете просто отключить CodeLens, как предлагает @John Brett.
Майк
6

Удалите Microsoft GitProvider из Visual Studio 2015

Ссылка: http://researchaholic.com/2015/02/02/remove-the-microsoft-gitprovider-from-visual-studio-2013/

  1. Убедитесь, что Visual Studio закрыта
  2. Открыть regedit
  3. Перейдите к HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders
  4. Удалите 11b8e6d7-c08b-4385-b321-321078cdd1f8 В области сведений должно быть указано GitProvider.
  5. Откройте Visual Studio
Maks
источник
1
улучшение этого ответа - примените следующий reg-файл Редактор реестра Windows версии 5.00 [-HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders \ {11b8e6d7-c08b-4385-b321-321078cdd1f8}]
Иван Шахов
4

Мне удалось отключить встроенный поставщик Visual Studio Git, удалив все вхождения этих ключей реестра:

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

11b8e6d7-c08b-4385-b321-321078cdd1f8

Boklucius
источник
1
У меня это работает! Спасибо! Но остается один вопрос: если в конце концов я обновлю VS (выполняя незначительное или серьезное обновление), мне придется снова удалять ключи?
Руслан Гарипов
4

Используйте новый пакет расширения NoGit: https://github.com/markrendle/nogit/releases/download/1.0.5/NoGit.vsix

Загрузите и добавьте в визуальную студию: /superuser/73675/how-do-i-install-a-vsix-file-in-visual-studio

Легко.

Бен Уайльд
источник
Для установки я предпочел вручную изменить расширение .vsix на .zip, чтобы вы могли затем щелкнуть правой кнопкой мыши и извлечь файлы. Затем все, что вам нужно сделать, это поместить новую извлеченную папку в папку данных вашего пользовательского приложения (% appdata% \ Local \ Microsoft \ VisualStudio \ {version} \ Extensions). Затем перезапустите Visual Studio, откройте Инструменты-> Расширения и обновления ..., затем найдите «NoGit» и включите его, затем снова перезапустите.
Бен Уайлд
4

Целую неделю было больно, и я не знал, как запустить эту службу управления версиями в VS2015. Но надо знать, как это остановить. Вот шаги, чтобы отделить git / любой исходный элемент управления от VS2019.

Перейдите в VS -> Инструменты -> Параметры -> Управление исходным кодом -> [Текущий подключаемый модуль управления исходным кодом]

Вы получаете весь возможный контроль версий в вашей системе и вариант «Нет». Если вы выберете «Нет», все готово. Моя была исправлена ​​сразу после выбора опции «Нет», нажмите «ОК» и перезапустите VS и больше никакого контроля версий.

SRoy
источник
3

Вам нужно закрыть все решения VS. запустите его, установите Menu \ tools \ options \ Source Control \ Git -> None, закройте это решение при появлении запроса. Теперь, при открытии любого другого решения, варианты остаются «Нет».

Сергей Мелещук
источник
1

VS2015 потреблял 50% моего процессора в режиме ожидания. Я узнал, что отключение Git было решением. К сожалению, отключение Git только для того, чтобы изучить его, автоматически снова включает его.

В моем случае я действительно хотел использовать Git, но не с использованием процессора 50%.

Поскольку решение NoGit доступно только для VS2013, вы можете вместо этого загрузить: Git Source Control Provider, даже если вы не используете Git. Моя загрузка ЦП теперь составляет 2,2% вместо 50% в режиме ожидания.

bluee
источник
1

У меня также есть проблемы с Git в Visual Studio, но я думаю, что наконец нашел рабочее решение. До сих пор я использовал трюк, переименовывая папку .git в _git и добавляя текстовый файл с именем .git, содержащий строку «gitdir: _git». Но после обновления до VS2019 это больше не работает.

Я пробовал много разных решений, но ни одно из них не сработало, поскольку мне нужен Git для одних проектов, а для других - нет. В моем проблемном проекте для контроля версий используется Team Foundation Server моей компании. Но поскольку я потерял код из-за неудачных слияний, сделанных TFS, я фиксирую свои изменения в локальном репозитории Git перед обновлением или фиксацией в TFS.

D:\Projects\TFS\.git Локальное репозиторий git, которое VS не следует использовать.

D:\Projects\TFS\ProjectA\$tf Файлы TFS, которые VS должен использовать для ProjectA.

Как бы я ни пытался, мне не удавалось заставить VS использовать TFS для ProjectA, когда он обнаружил папку .git в родительской папке. Мое решение - переместить папку .git в:

D:\Projects\TFS-GIT\.git

и создайте соединение каталогов с папкой ProjectA. Запустите командную строку с повышенными привилегиями и выполните:

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

Открыв D:\Projects\TFS\ProjectA\ProjectA.slnв Visual Studio, он не найдет никакой папки .git и будет подключаться к TFS, как должен.

Выполнение команд git из D:\Projects\TFS-GITбудет использовать те же файлы, что и Visual Studio, за исключением того, что также доступна папка .git. TortoiseGit также отлично работает из этой папки.

Anlo
источник
0

Мне было трудно найти решение для этого, и я сделал это после стольких попыток, поэтому я не могу быть точным. Создайте еще один локальный репозиторий с помощью GitHub Desktop в другой папке. Готово, откройте Visual Studio без загрузки проекта, теперь в Team Explorer должны отображаться оба репозитория. Выберите новый репозиторий, так как вы должны выполнить некоторые операции, на этом пункте вы можете «удалить» свой старый репозиторий, так как новый является «активным». После этого я удалил файлы .hidden .git * из прежней папки. Теперь открытие проекта не приводит к повторному созданию старого репозитория. Надеюсь это поможет.

Стефано Лози
источник
0

Это безумие, но у меня сработало очистить мою корзину (которая содержала ненужную папку .git моего решения).

Я до сих пор не могу в это поверить ...

Жером МЕВЕЛЬ
источник
0

Переименуйте "C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation"

VS покажет ошибку только один раз и будет работать нормально.

Иван Шахов
источник
0

Этот ад расширения git замедляет все в IDE (VS 2015 в моем случае). Мне пришлось удалить всю папку TeamFoundation, чтобы избавиться от этого. Обратной стороной является то, что вы не сможете использовать Git и TeamFoundation в Visual Studio 2015. Примечание. Сделайте резервную копию этой папки в другом месте и при необходимости восстановите ее.

Чтобы удалить папку, я сделал это. Шаги, которые я выполнил, чтобы удалить нужную папку

Я сделал это потому, что VS 2015 генерирует случайное имя папки для расширения TeamFoundation, поэтому имя моей папки может отличаться от вашего.

Саундарараджан
источник
-2

Инструменты, Параметры, Контроль версий, Выбор подключаемого модуля, Нет

Дейл Фрейзер
источник
8
Visual Studio 2013 не сохранит это изменение. В следующий раз, когда вы откроете решение, оно автоматически повторно выберет плагин Git, если обнаружит каталог .git. Это произойдет даже в том случае, если решение уже привязано к TFVC.
Mark W Dickson
-4

1) близкое решение и визуальная студия. 2) перейдите в каталог решения и удалите скрытый каталог git и 2 текстовых файла git. 3) снова открыть визуальную студию. 4) инструменты перехода -> параметры и контроль версий. 5) не выбирайте ничего. 6) перезапустите визуальную студию. 7) откройте свое решение. 8) goto tools -> options and source control снова и выберите TFS. 9) в решении щелкните правой кнопкой мыши, чтобы выбрать добавление контроля версий в решение. 10) выберите tfs.

user1813748
источник
Им не нужна TFS, и они, конечно же, НЕ ХОТЯТ удалять папку .git, поскольку она сотрет всю локальную историю фиксации. Они просят, как запретить VS использовать информацию из папки .git, а не как очистить эту папку.
quetzalcoatl
-5

Установите Tools \ Options \ Source Control обратно на TFS. Закройте Visual Studio 2015. Откройте корневую папку исходного кода. Удалите папку с именем ".git". Начать сначала.

Чарли Бенсон
источник
4
Это похоже на то, что вы просите оператора полностью удалить папку из git. «Я предпочитаю управлять исходным кодом из командной строки», похоже, указывает на то, что для него это не решение.
Evren Kuzucuoglu