Visual Studio 2013'te Git entegrasyonunu kalıcı olarak nasıl devre dışı bırakabilirsiniz?


113

Araçlar / Seçenekler iletişim kutusunu kullanarak git entegrasyonunu devre dışı bırakabileceğinizi biliyorum, ancak fark ettiğim şey, bu ayarın oturumlar arasında kalıcı olmadığı; Yani çözümü kapatıp yeniden açar açmaz Git entegrasyonu yeniden etkinleştirilir. Sanırım Visual Studio, çözüm dosya sistemi ağacımda .git klasörünü görüyor.

Git eklentisi etkinleştirildiğinde hatalı davranan çeşitli Visual Studio 2013 eklentileri var, kaynak kontrolümü komut satırından yönetmeyi tercih ediyorum ve Git entegrasyonunun gözle görülür yavaşlamalara yol açtığı birkaç çok büyük proje üzerinde çalışıyorum çözümü açarken ve onunla çalışırken. Kullanmadığım ya da ihtiyacım olmadığı için tamamen kapatmak istiyorum. Mümkün mü?


1
muhtemelen yararlı: Düzeltmek için, uzantıyı devre dışı bıraktım ve sonra Kaynak Kontrolünü Değiştir komutu 'Bağla' işlevini kullanarak kaynak kontrolünü değiştirdim - Daha fazlasını görmek için: thereprogram.com/2013/04/18/visual-studio-tools-for- git /…
Tom Kerr

1
İşin püf noktası bu - Visual Studio 2013'te Git tümleştirmesi bir uzantı olarak sağlanmaz, doğrudan pişirilir. Devre dışı bırakılacak bir uzantı olmadığından uzantı devre dışı bırakılamaz. Boo!
Bryan Porter

belki otomatikleştirebilirsin?
klumsy

Yapabilirdim, ancak otomasyonu yürütmek için hangi tetikleyiciyi kullanırdım? Yüklendiğinde ateşleyen bir uzantı? Bir OOB özelliğini devre dışı bırakmak için bir uzantı yazmak garip geliyor.
Bryan Porter

1
Ekibimde de bu sorun vardı. Sanırım kullandığımız numara bir çözüm yüklemek, git entegrasyonunu devre dışı bırakmak ve ardından VS'yi yeniden başlatmaktı. SP 1'i de yüklemeyi deneyebilirsiniz.
Ade Miller

Yanıtlar:


90

Söylediğiniz gibi kaynak kontrol eklentisini devre dışı bırakabilirsiniz:

  • Araç seçenekleri
  • "Tüm ayarları göster" i işaretleyin
  • Kaynak Kontrolü / Eklenti Seçimi
  • "Geçerli kaynak kontrol eklentisi" ni "Yok" olarak ayarlayın

Ardından Ade Miller'ın dediği gibi: Visual Studio'yu yeniden başlatın.

Git eklentisi etkinleştirildiğinden beri Visual Studio'm gerçekten yavaş çalışıyordu ve bu adımları izleyerek "oturumlar arasında kalıcı olarak" devre dışı bırakmayı başardım.

Umarım yardımcı olur.


42
VS'nin çözümü yeniden açarken GIT'yi yeniden etkinleştirdiğini görüyorum. Ayrıca, aşağıda belirtilen NoGit uzantısı çalışmıyor. Hmm.
mackenir

Bende de aynı sorun var. VS, VS yeniden başlatıldığında GIT entegrasyonunu basitçe yeniden etkinleştirir. Şimdi düzinelerce yukarıda açıklandığı gibi devre dışı bıraktığımı unutmayın. (geri gelmeye devam ediyor)
Venryx

1
benim için de yeniden etkinleştiriyor. görünüşe göre birisi başlangıçta onu devre dışı bırakan bir uzantı yazdı. çılgın! stackoverflow.com/questions/22459959/… . Bu bağlantıdaki diğer bir hack, sağlayıcı dll için Everyone izinlerini kaldırmaktır: C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Microsoft.TeamFoundation.Git.Provider. dll
Sonic Soul

3
Takım Gezgini penceresini açmanın benim için yeniden etkinleştirdiğini buldum. Bu yüzden o pencereyi kapattım ve seçeneği tekrar Yok'a çevirdim. Umarım VS, bu konuda bana tekrar "yardım etmeye" çalışmaz.
Sean

Hiçbir çözüm yüklenmeden, kaynak kontrol eklentisi ayarını Git'ten Yok'a geri değiştirdim. Daha sonra Visual Studio'yu (hala çözüm olmadan) yeniden başlattım ve ayarı kontrol ettim ve şimdi Visual Studio Team Foundation Server oldu. Tekrar Yok olarak ayarladım ve tekrar VS'yi yeniden başlattım ve bu sefer takılmış gibi görünüyor.
Adrian McCarthy

52

NoGit uzantısının yüklenmesine bile izin verilmeyen Visual Studio 2015 ile aynı sorunu yaşadım. "Başlangıçta son çözümü aç" seçeneğini kullanıyorum, bu yüzden bunun bir şekilde soruna bağlı olabileceğini düşündüm.

Bu yüzden "Araçlar - Seçenekler - Kaynak Kontrolü" ne gitmeden önce çözümümü kapattım , sonra kapattım, VS'yi yeniden başlattım ve - işte, SC kapalı kaldı! Umarım diğer çözümlerde de öyle kalır.


2
Bunun bin katı. Kayıt defteri kesmesi yok, özel uzantı yok, bu işe yarıyor. Teşekkürler !
driis

1
Bir başka şey ile birleştirmek zorunda: Bu komut satırı işaretini içerecek şekilde benim Visual Studio başlangıç menüsü kısayol güncelleme: /ResetSettings "C:\Users\myuserid\Documents\Visual Studio 2015\Settings\CurrentSettings.vssettings". Komut satırı referansına göre, bu ayar "IDE'nin varsayılan ayarlarını geri yükler, isteğe bağlı olarak belirtilen VSSettings dosyasına sıfırlar." Bu, istediğim ayarların her zaman uygulanmasını sağlıyor gibi görünüyor.
mcw

4
Teşekkürler! Bu benim için çalıştı. Başka bir not - bunu yapmadan önce sağ taraftaki Takım Görüntüleyici sekmesini (Çözüm Gezgini'nin yanında) kapattığınızdan emin olun, aksi takdirde tıklarsanız otomatik olarak yeniden etkinleştirilecektir.
ForOhFor

2
VS çökmelerinden sonra etrafta kalan devenv.exe işlemini öldürdüğünüzden emin olun, aksi takdirde bunu defalarca yapabilirsiniz ve yapışmaz. Ancak bunu yaptığında çok mutlu ve kayıt defteri kesmesi gerekmiyor!
2016'da

19

Benim için, aşağıdaki komutla depoyu oluşturmak sorunu çözdü:

git init --separate-git-dir _git

Bir .git dizin oluşturmadığından , yalnızca gerçek depo dizinini gösteren bir .git dosya , örneğin:

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

Visual Studio (en azından VS2015 Güncelleştirme 3'e kadar, kullandığım şey bu) bunu fark etmiyor!

Bu, ortam değişkeni şeylerinden daha iyi çalıştı çünkü Git Uzantıları (benim kullandığım) bunu desteklemekte sorun yaşadı, ancak .gitbir _gitklasöre işaret eden dosya ile mükemmel bir şekilde uğraştı .


Kabul edildi, ben de çevre değişkeni ile uğraşmamayı tercih ederim. Bu güzel çalışıyor.
kaveman

Yukarıda hafif bir yazım hatası olduğunu ekleyeceğim, seçenek--separate-git-dir
kaveman

2
Harika bir çözüm! Tanrıya şükür VS2013, .git"depoya giden bu dosya sisteminden bağımsız Git sembolik bağlantısını" okumayı uygulamadı , yoksa aynı problemde bulabilirdik.
KurzedMetal

2
Bu gerçekten de tüm yanıtlar zincirinde var olan en basit çözümdür.
Tarık

1
İpucu için çok teşekkürler! `` NoGit 'Visual Studio uzantısı VS 2017 ile çalışmadığından, VS 2017'yi "git-izleme" den durdurmanın tek yolu bu :-) Teşekkürler! 👍
Ruslan Garipov

11

IDE her yüklendiğinde git SCC'nin VS2015'te yeniden etkinleştirilmesinin bir nedeni CodeLens'tir. Araçlar / Seçenekler / Metin Düzenleyici / Tüm Diller / CodeLens TFVS ve Git'i içeren çeşitli etkinlikler için bir onay kutusu vardır - bu git onay kutularından herhangi birinin işaretlenmesi, bir git deposunda çalıştığınızı düşünürse Git eklentisini otomatik olarak etkinleştirir.


Çözümün kaynak kontrolünden kaldırılmasını veya VS kurulumuna zarar vermeyi önermeyen çalışma (benim için) cevabı.
Evren Kuzucuoğlu

Doğru çözüm budur.
Juan Pablo Califano

Visual Studio 2017'nin kaynak kontrolünü devre dışı bırakmanın önemsiz şeyi geçersiz kıldığını gördüğüm için bu gerçekten önemli. Ancak, VS 2017'den sonra bile bir .vsklasör oluşturduğu görülüyor .
Royi

8

NoGit Visual Studio uzantısı bu davranışı yönetir.

Bonus: harika bir açıklama.


maalesef VS2013 SP3 ile artık çalışmıyor
thumbmunkeys

VS 2013 Güncelleme 4 kullanıyorum ve hala benim için iyi çalışıyor.
mxmissile

Git entegrasyonunu kod camlarında gösterilen git bilgileriyle karıştırdım ... açıklama için teşekkürler!
thumbmunkeys

3
2015'i de desteklemiyor
Ben Wilde

@BenWilde Yeni sürüm VS 2015 Güncellemesi 1 ile çalışıyor (buradan alın: github.com/hmemcpy/nogit )
Ruslan Garipov

8

Visual Studio 2015 için, CodeLens'in yeniden başlattıktan sonra Git Kaynak Denetimi eklentisini yeniden etkinleştirdiğini buldum. CodeLens'i devre dışı bırakmak bunu düzeltti.


Bu, Visual Studio 2017'de GIT'yi devre dışı bırakmak için önemlidir. Harika yakalama!
Royi

6

(Güncelleme: Bu yanıt artık GIT_DIR ve GIT_WORK_TREE ile ilgili daha derin anlayışıma dayalı tam olarak çalışan bir çözüm sağlıyor)

Özet: Git, .gittfs'den teslim alınan dosyalarla dizini çalışma dizininin dışındaki bir yere taşıyabilecek kadar esnektir . Bu, daha sonra görsel stüdyonun bir git deposu olarak çalıştırabiliyorken algılayabildiği git izleri olmadan% 100 temiz bir tfs kontrolüne sahip olmayı mümkün kılar. Anahtar, git dir (git depo deposu) ve çalışma ağacını (teslim aldığınız kaynak kodunuz) ayırmaktır.

Diyelim ki kaynak kodunuz teslim edildi c:\work\someproject\tfscodeve zaten git initoraya koştunuz, örneğin visual studio c:\work\someproject\tfscode\.gitdizini tespit ediyor ve bu sorun yaratıyor.

Hayatı daha keyifli hale getirmek için şunları yapın:

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

Bu, görsel stüdyoya göre mükemmel bir şekilde çalışır, çünkü o zaman git'te depolanan hiçbir şeyden tamamen habersizdir.


Bu arada, git-tf naturaly cygwin yollarını sevmez, bu yüzden GIT_...=c:/work/...git tf kullanmayı planlıyorsanız kullanın.
hlovdal

Bu harika, ancak \ c \ work \ .. style yerine c: / work / ... style yolunu kullanacağım.
zumalifeguard

6

Bu benim için Visual Studio 2013 ve 2015'te çalıştı. Visual Studio'yu kapatıp yeniden açsanız bile devam ediyor.

  1. Çözümü açın

  2. Araçlar -> Seçenekler -> Kaynak Kontrolü -> Eklentiyi Yok olarak ayarla seçeneğine gidin

  3. Visual Studio'yu kapatın ve aşağıdaki komutu yönetici haklarıyla yürütün.

"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 Güncelleme 1: MSFT TFS sağlayıcısı bundan sonra çalışmıyor
Ruslan Garipov

... ya da @John Brett'in önerdiği gibi CodeLens'i devre dışı bırakabilirsiniz.
mike

6

Microsoft GitProvider'ı Visual Studio 2015'ten kaldırın

Bağlantı: http://researchaholic.com/2015/02/02/remove-the-microsoft-gitprovider-from-visual-studio-2013/

  1. Visual Studio'nun kapalı olduğundan emin olun
  2. Regedit'i aç
  3. HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders konumuna gidin
  4. 11b8e6d7-c08b-4385-b321-321078cdd1f8'i sil Ayrıntılar bölmesinde GitProvider demelidir
  5. Visual Studio'yu açın

1
bu cevabın iyileştirilmesi - aşağıdaki reg dosyasını uygulayın Windows Kayıt Defteri Düzenleyicisi Sürüm 5.00 [-HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders \ {11b8e6d7-c08b-4385-b321-321078cdd1f8}]
Ivan Shakhov

4

Bu kayıt defteri anahtarlarının tüm oluşumlarını silerek yerleşik Visual Studio Git Sağlayıcısını devre dışı bırakmayı başardım:

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

11b8e6d7-c08b-4385-b321-321078cdd1f8


1
Bu benim için çalışıyor! Teşekkürler! Ancak bir soru kalıyor: Sonunda VS'yi güncellersem (küçük veya büyük güncelleme yaparsam), anahtarları tekrar silmem gerekecek mi?
Ruslan Garipov

4

Yeni NoGit uzantı paketini kullanın: https://github.com/markrendle/nogit/releases/download/1.0.5/NoGit.vsix

İndirin ve görsel stüdyoya ekleyin: /superuser/73675/how-do-i-install-a-vsix-file-in-visual-studio

Kolay.


Yüklemek için, .vsix uzantısını manuel olarak .zip olarak değiştirmeyi tercih ettim, böylece daha sonra dosyaları sağ tıklayıp çıkarabilirsiniz. Ardından tek yapmanız gereken, yeni çıkarılan klasörü kullanıcılarınızın uygulama veri klasörüne (% appdata% \ Local \ Microsoft \ VisualStudio \ {version} \ Extensions) koymaktır. Ardından visual studio'yu yeniden başlatın, Tools-> Extensions and Updates ... açın, ardından "NoGit" i bulun ve etkinleştirin, ardından yeniden başlatın.
Ben Wilde

4

Bir hafta boyunca sırtım ağrıyordu ve bu kaynak kontrol hizmetini VS2015'te nasıl başlattığımı bilmiyordum. Ama nasıl durdurulacağını bilmeliyim. Git / herhangi bir kaynak denetimini VS2019 ile ayrıştırmanın adımları.

VS -> Araçlar -> Seçenekler -> Kaynak Kontrolü -> [Mevcut Kaynak Kontrolü Eklentisi] 'ne gidin

Sisteminizde olası tüm kaynak kontrolünü ve Yok seçeneğini alırsınız. Hiçbiri'ni seçerseniz, hazırsınız demektir. Yok seçeneğini seçtikten hemen sonra benimki düzeltildi, tamam'a basın ve VS'yi yeniden başlatın ve daha fazla kaynak kontrolü yok.


3

Tüm VS çözümlerini kapatmanız gerekir. birini başlatın, Menu \ tools \ options \ Source Control \ Git -> None olarak ayarlayın, istendiğinde bu çözümü kapatın. Şimdi, başka bir çözümü açarken seçenekler "Yok" olarak kalır.


1

VS2015, boştayken CPU'mun% 50'sini emiyordu. Çözümün Git'i devre dışı bırakmak olduğunu öğrendim. Ne yazık ki Git'i yalnızca öğrenmek için devre dışı bırakmak onu otomatik olarak yeniden etkinleştirir.

Benim durumumda aslında Git kullanmak istedim, ancak% 50 cpu kullanımıyla değil.

NoGit çözümü yalnızca VS2013 için mevcut olduğundan, bunun yerine şunu indirebilirsiniz: Git Kaynak Kontrol Sağlayıcısı Git kullanmasanız bile. CPU kullanımım artık boştayken% 50 yerine% 2,2.


1

Ayrıca Visual Studio'da Git ile ilgili sorunlar yaşıyorum ama sanırım sonunda çalışan bir çözüm buldum. Şimdiye kadar, .git klasörünü _git olarak yeniden adlandırma ve "gitdir: _git" satırını içeren .git adlı bir metin dosyası ekleme hilesini kullandım. Ancak VS2019'a yükselttikten sonra artık çalışmıyor.

Pek çok farklı çözümü denedim, ancak bazı projeler için Git'e ihtiyaç duyduğum ve diğerleri için gitmediğim için hiçbiri işe yaramadı. Sorunlu projem, kaynak kontrolü için şirketimin Team Foundation Server'ı kullanıyor. Ancak TFS tarafından yapılan kötü birleştirmelerde kodu kaybettiğimden, TFS'yi güncellemeden veya taahhütte bulunmadan önce değişiklikleri yerel bir Git deposunda yapıyorum.

D:\Projects\TFS\.git VS'nin kullanmaması gereken yerel git deposu.

D:\Projects\TFS\ProjectA\$tf VS'nin ProjectA için kullanması gereken TFS dosyaları.

Ne kadar denediğim önemli değil, bir üst klasörde bir .git klasörü bulduğunda VS'nin ProjectA için TFS'yi kullanmasını sağlayamadım. Çözümüm .git klasörünü şuraya taşımak:

D:\Projects\TFS-GIT\.git

ve ProjectA klasörüne bir dizin bağlantısı oluşturun. Yükseltilmiş bir komut istemi başlatın ve çalıştırın:

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

D:\Projects\TFS\ProjectA\ProjectA.slnVisual Studio'da açıldığında, herhangi bir .git klasörü bulamayacak ve olması gerektiği gibi TFS'ye bağlanacaktır.

Git komutlarının çalıştırılması D:\Projects\TFS-GIT, .git klasörünün de kullanılabilir olması dışında Visual Studio ile aynı dosyaları kullanır. TortoiseGit de bu klasörden iyi çalışıyor.


0

Bunun için bir çözüm bulmakta zorlandım ve bunu pek çok denemeden sonra yaptım, bu yüzden kesin olamıyorum. Başka bir klasörde GitHub Desktop'ı kullanarak başka bir yerel depo oluşturun. Bunu yaptıktan sonra Visual Studio'yu bir proje yüklemeden açın, şimdi Takım Gezgini her iki depoyu da göstermelidir. Bazı işlemleri yapmanız gerektiği gibi yeni depoyu seçin, bu bölmede eski deponuzu "kaldırabilirsiniz", çünkü yenisi "etkin" olanıdır. Bunu yaptıktan sonra .hidden .git * dosyalarını eski klasörden kaldırdım. Şimdi projeyi açmak, eski deponun yeniden oluşturulmasına neden olmaz. Bu yardımcı olur umarım.


0

Bu çılgınca ama benim için işe yarayan şey Geri Dönüşüm Kutumu Boşaltmaktı (çözümümün istenmeyen .git klasörünü içeren).

Hâlâ inanamıyorum ...


0

"C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation" olarak yeniden adlandırın

VS, hatayı yalnızca bir kez gösterir ve iyi çalışır.


0

Bu git uzantısı cehennemi IDE'deki her şeyi yavaşlatıyor (benim durumumda VS 2015). Bundan kurtulmak için tüm TeamFoundation klasörünü kaldırmak zorunda kaldım. Dezavantajı, Git ve TeamFoundation'ı Visual Studio 2015'te kullanamayacak olmanızdır. Not: Bu klasörü başka bir yerde yedekleyin ve gerektiğinde geri yükleyin.

Klasörü silmek için bunu yaptım. Doğru klasörü silmek için izlediğim adımlar

Bunu yapmamın nedeni, VS 2015'in TeamFoundation uzantısı için rastgele klasör adı oluşturmasıdır, bu nedenle benim klasör adım sizinkinden farklı olabilir.


-2

Araçlar, Seçenekler, Kaynak Denetimi, Eklenti Seçimi, Yok


8
Visual Studio 2013 bu değişikliği sürdürmeyecektir. Çözümü bir sonraki açışınızda, bir .git dizini algılarsa, Git eklentisini otomatik olarak yeniden seçecektir. Çözüm zaten TFVC'ye bağlıysa bunu bile yapacak.
Mark W Dickson

-4

1) yakın çözüm ve görsel stüdyo. 2) çözümün dizinine gidin ve gizli git dizinini ve 2 git metin dosyasını silin. 3) görsel stüdyoyu tekrar açın. 4) araçlara git -> seçenekler ve kaynak kontrolü. 5) hiçbirini seçmeyin. 6) visual studio yeniden başlatın. 7) çözümünüzü açın. 8) araçlara git -> seçenekler ve kaynak denetimi tekrar ve TFS'yi seçin. 9) çözümde, çözüme kaynak kontrolü eklemek için sağ tıklayın. 10) tfs'yi seçin.


TFS istemiyorlar ve tüm yerel commit geçmişini sileceği için .git klasörünü silmek İSTEMEZLER. İstedikleri şey, VS'nin .git klasöründeki bilgileri kullanmasının nasıl engelleneceği, bu klasörün nasıl temizleneceği değil.
quetzalcoatl

-5

Araçlar \ Seçenekler \ Kaynak Denetimini tekrar TFS olarak ayarlayın. Visual Studio 2015'i kapatın. Kaynak kodunuzun kök klasörünü açın. ".Git" adlı klasörü silin. Tekrar başlat.


4
Bu, optan klasörü git'ten tamamen kaldırmasını istemeniz gibi görünüyor. "Kaynak kontrolümü komut satırından yönetmeyi tercih ediyorum" onun için bir çözüm olmayacağını gösteriyor gibi görünüyor.
Evren Kuzucuoğlu
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.