Bagaimana Anda dapat menonaktifkan integrasi Git di Visual Studio 2013 secara permanen?

113

Saya tahu bahwa Anda dapat menonaktifkan integrasi git dengan menggunakan dialog Alat / Opsi, tetapi yang saya perhatikan adalah bahwa pengaturan ini tampaknya tidak bertahan di semua sesi; yaitu, segera setelah menutup dan membuka kembali solusi, integrasi Git diaktifkan kembali. Saya menduga Visual Studio melihat folder .git di pohon sistem file solusi saya.

Ada berbagai plugin Visual Studio 2013 yang berperilaku tidak benar saat Git plug-in diaktifkan, saya lebih suka mengelola kontrol sumber saya di baris perintah, dan saya mengerjakan beberapa proyek yang sangat besar di mana integrasi Git memperkenalkan perlambatan yang nyata dalam membuka dan bekerja dengan solusinya. Saya ingin mematikannya untuk selamanya, karena saya tidak menggunakannya atau membutuhkannya. Apakah ini mungkin?

Bryan Porter
sumber
1
mungkin berguna: Untuk memperbaikinya, saya menonaktifkan ekstensi dan kemudian mengubah kontrol sumber menggunakan fungsi 'Bind' perintah Ubah Sumber Kontrol - Lihat lebih lanjut di: thereprogram.com/2013/04/18/visual-studio-tools-for- git /…
Tom Kerr
1
Itulah triknya - dalam Visual Studio 2013, integrasi Git tidak disediakan sebagai ekstensi, melainkan langsung masuk. Tidak dapat menonaktifkan ekstensi, karena tidak ada ekstensi untuk dinonaktifkan. Huu!
Bryan Porter
mungkin Anda bisa mengotomatiskannya?
Kikuk
Saya bisa, tetapi pemicu apa yang akan saya gunakan untuk menjalankan otomatisasi? Ekstensi yang aktif saat dimuat? Menulis ekstensi untuk menonaktifkan fitur OOB terasa aneh.
Bryan Porter
1
Tim saya juga mengalami masalah ini. Saya pikir trik yang kami gunakan adalah memuat solusi, menonaktifkan integrasi git dan kemudian memulai ulang VS. Anda juga dapat mencoba menginstal SP 1.
Ade Miller

Jawaban:

90

Seperti yang Anda katakan, Anda dapat menonaktifkan plugin kontrol sumber ke:

  • Alat / Opsi
  • Centang "Tampilkan semua pengaturan"
  • Kontrol Sumber / Pemilihan Plug-in
  • Setel "Plug-in kontrol sumber saat ini" ke "Tidak Ada"

Kemudian, seperti yang dikatakan Ade Miller: Mulai ulang Visual Studio.

Visual Studio saya bekerja sangat lambat karena git plugging diaktifkan dan saya berhasil menonaktifkannya "terus-menerus di seluruh sesi" mengikuti langkah-langkah ini.

Semoga membantu.

Aebsubis
sumber
42
Saya menemukan bahwa VS hanya mengaktifkan kembali GIT saat membuka kembali solusi. Selain itu, ekstensi NoGit yang disebutkan di bawah ini tidak berfungsi. Hmm.
mackenir
Saya memiliki masalah yang sama. VS hanya mengaktifkan kembali integrasi GIT pada VS restart. Perhatikan bahwa saya telah menonaktifkannya seperti yang dijelaskan di atas puluhan kali sekarang. (Itu terus datang kembali)
Venryx
1
itu juga mengaktifkannya kembali untuk saya. rupanya seseorang menulis ekstensi yang menonaktifkannya di awal. gila! stackoverflow.com/questions/22459959/… . Retasan lain di tautan ini adalah untuk menghapus izin dari Semua Orang untuk penyedia 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
Saya menemukan bahwa membuka jendela Team Explorer mengaktifkannya kembali untuk saya. Jadi saya baru saja menutup jendela itu dan mengembalikan opsi ke Tidak Ada. Mudah-mudahan VS tidak akan mencoba untuk "membantu" saya lagi dalam hal ini.
Sean
Tanpa solusi yang dimuat, saya mengubah pengaturan plugin kontrol sumber dari Git kembali ke None. Saya kemudian me-restart Visual Studio (masih w / oa solusi) dan memeriksa pengaturan, dan sekarang Visual Studio Team Foundation Server. Saya mengaturnya kembali ke Tidak ada lagi dan memulai ulang VS lagi, dan kali ini tampaknya macet.
Adrian McCarthy
52

Saya memiliki masalah yang sama dengan Visual Studio 2015, di mana ekstensi NoGit bahkan tidak diizinkan untuk diinstal. Saya menggunakan opsi "buka solusi terakhir saat start-up" jadi saya pikir mungkin ini entah bagaimana terkait dengan masalah tersebut.

Jadi saya cukup menutup solusi saya sebelum pergi ke "Tools - Options - Source Control", lalu mematikannya, restart VS dan - voila, SC tetap dimatikan! Semoga tetap demikian di solusi lain juga.

Artalus
sumber
2
Seribu kali ini. Tidak ada peretasan registri, tidak ada ekstensi khusus, ini berfungsi. Terima kasih!
driis
1
Aku harus menggabungkan ini dengan satu hal lain: Saya diperbarui start menu shortcut VisualStudio saya untuk memasukkan perintah ini baris bendera: /ResetSettings "C:\Users\myuserid\Documents\Visual Studio 2015\Settings\CurrentSettings.vssettings". Menurut referensi baris perintah, pengaturan ini "Mengembalikan pengaturan default IDE, secara opsional mengatur ulang ke file VSSettings yang ditentukan." Itu tampaknya memastikan bahwa pengaturan yang saya inginkan selalu diterapkan.
mcw
4
Terima kasih! Ini berhasil untuk saya. Catatan lain - pastikan untuk menutup tab Penampil Tim di sisi kanan (di sebelah Solution Explorer) sebelum Anda melakukan ini, atau secara otomatis akan aktif kembali jika Anda mengkliknya.
ForOhFor
2
Pastikan Anda mematikan proses devenv.exe lari yang tetap ada setelah VS crash meninggalkan setidaknya satu CPU Anda disematkan, jika tidak, Anda dapat melakukan ini berulang kali dan itu tidak akan menempel. Tapi sangat senang ketika itu terjadi dan tidak diperlukan peretasan registri!
Hadir
19

Bagi saya, membuat repositori dengan perintah berikut memperbaiki masalah:

git init --separate-git-dir _git

Karena tidak membuat .git direktori , hanya .git file yang menunjuk ke direktori repositori sebenarnya, misalnya:

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

Visual Studio (setidaknya hingga VS2015 Update 3, yang saya gunakan) tidak menyadarinya!

Ini bekerja lebih baik daripada hal-hal variabel lingkungan karena Ekstensi Git (yang saya gunakan) memiliki masalah dalam mendukungnya, tetapi menangani .gitfile yang mengarah ke _gitfolder dengan sempurna.

Alex
sumber
Setuju, saya juga lebih suka tidak main-main dengan hal-hal variabel lingkungan. Ini bekerja dengan baik.
kaveman
Saya akan menambahkan bahwa ada sedikit kesalahan ketik di atas, opsinya adalah--separate-git-dir
kaveman
2
Solusi yang luar biasa! Terima kasih Tuhan VS2013 tidak menerapkan membaca .git"tautan simbolis Git agnostik sistem berkas ke repositori", atau kami akan menemukan masalah yang sama.
KurzedMetal
2
Ini memang solusi paling sederhana yang ada di seluruh rantai jawaban.
Tarik
1
Terima kasih banyak atas petunjuknya! Karena ekstensi Visual Studio `NoGit 'tidak berfungsi dengan VS 2017, ini adalah satu-satunya cara bagi saya untuk menghentikan VS 2017 dari" git-monitoring ":-) Terima kasih! 👍
Ruslan Garipov
11

Salah satu alasan git SCC diaktifkan kembali di VS2015 setiap kali IDE dimuat adalah CodeLens. Alat / Opsi / Editor Teks / Semua Bahasa / CodeLens Terdapat kotak centang untuk berbagai aktivitas yang melibatkan TFVS dan Git - mencentang kotak git mana pun akan secara otomatis mengaktifkan plugin Git jika Anda mengira Anda sedang mengerjakan git repo.

John Brett
sumber
Bekerja (untuk saya) jawaban yang tidak menyarankan menghapus solusi dari kontrol sumber atau merusak instalasi VS.
Evren Kuzucuoglu
Ini adalah solusi yang tepat.
Juan Pablo Califano
Ini sangat penting karena saya melihat Visual Studio 2017 menimpa hal sepele menonaktifkan kontrol sumber. Tetapi tampaknya bahkan setelah itu VS 2017 membuat .vsfolder.
Royi
8

Ekstensi NoGit Visual Studio menangani perilaku ini.

Bonus: deskripsi luar biasa.

mxmissile.dll
sumber
sayangnya itu tidak bekerja lagi dengan VS2013 SP3
thumbmunkeys
Saya menggunakan VS 2013 Update 4, dan masih berfungsi dengan baik untuk saya.
mxmissile
Saya bingung integrasi git dengan informasi git yang ditampilkan di codelens ... terima kasih atas klarifikasinya!
thumbmunkeys
3
Juga tidak mendukung 2015
Ben Wilde
@BenWilde Versi baru bekerja dengan VS 2015 Update 1 (ambil di sini: github.com/hmemcpy/nogit )
Ruslan Garipov
8

Untuk Visual Studio 2015, saya menemukan bahwa CodeLens mengaktifkan kembali plugin Git Source Control setelah memulai ulang. Menonaktifkan CodeLens memperbaiki ini.

Ed Andersen
sumber
Ini penting untuk menonaktifkan GIT di Visual Studio 2017. Hasil tangkapan yang bagus!
Royi
6

(Perbarui: Jawaban ini sekarang memberikan solusi yang berfungsi penuh berdasarkan pemahaman saya yang lebih dalam tentang GIT_DIR dan GIT_WORK_TREE)

Rangkuman: Git cukup fleksibel sehingga Anda dapat memindahkan .gitdirektori ke tempat di luar direktori kerja dengan file-file yang diperiksa dari tfs. Hal ini memungkinkan untuk melakukan checkout tfs bersih 100% tanpa jejak git yang dapat dideteksi oleh studio visual sambil tetap dapat mengoperasikannya sebagai repositori git. Kuncinya adalah memisahkan git dir (penyimpanan repositori git) dan pohon kerja (kode sumber yang Anda periksa).

Katakanlah bahwa kode sumber Anda diperiksa c:\work\someproject\tfscodedan Anda sudah menjalankannya di git initsana, misalnya studio visual mendeteksic:\work\someproject\tfscode\.git direktori dan itu menyebabkan masalah.

Untuk membuat hidup lebih menyenangkan, lakukan hal berikut:

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

Ini bekerja dengan sempurna dalam kaitannya dengan studio visual karena ia sepenuhnya mengabaikan apa pun yang disimpan di git.

hlovdal.dll
sumber
Ngomong-ngomong, git-tf naturaly tidak menyukai jalur cygwin, jadi gunakan GIT_...=c:/work/...jika Anda berencana menggunakan git tf.
hlovdal
Ini bagus, tapi saya harus menggunakan c: / work / ... style path daripada \ c \ work \ .. style.
zumalifeguard
6

Ini bekerja untuk saya di Visual Studio 2013 dan 2015. Tetap ada meskipun Anda menutup dan membuka kembali Visual Studio.

  1. Buka solusinya

  2. Pergi ke Tools -> Options -> Source Control -> Set plugin ke None

  3. Tutup Visual Studio dan jalankan perintah di bawah ini dengan hak administratif.

pindahkan "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
sumber
Pembaruan VS 2015 1: Penyedia MSFT TFS tidak berfungsi setelah ini
Ruslan Garipov
... atau Anda bisa menonaktifkan CodeLens seperti saran @John Brett.
mike
6

Hapus Microsoft GitProvider dari Visual Studio 2015

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

  1. Pastikan Visual Studio ditutup
  2. Buka regedit
  3. Arahkan ke HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders
  4. Hapus 11b8e6d7-c08b-4385-b321-321078cdd1f8 Di panel detail, seharusnya tertulis GitProvider
  5. Buka Visual Studio
Maks
sumber
1
peningkatan jawaban ini - terapkan file reg berikut Windows Registry Editor Version 5.00 [-HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders \ {11b8e6d7-c08b-4385-b321-321078cdd1f8}]
Ivan Shakhov
4

Saya berhasil menonaktifkan penyedia Visual Studio Git bawaan dengan menghapus semua kejadian kunci registri tersebut:

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

11b8e6d7-c08b-4385-b321-321078cdd1f8

Boklucius
sumber
1
Ini berhasil untuk saya! Terima kasih! Tetapi satu pertanyaan tetap: Jika pada akhirnya saya akan memperbarui VS (melakukan pembaruan kecil atau besar), apakah saya harus menghapus kunci lagi?
Ruslan Garipov
4

Gunakan paket ekstensi NoGit baru: https://github.com/markrendle/nogit/releases/download/1.0.5/NoGit.vsix

Unduh dan tambahkan ke studio visual: /superuser/73675/how-do-i-install-a-vsix-file-in-visual-studio

Mudah.

Ben Wilde
sumber
Untuk menginstal, saya lebih suka mengubah ekstensi .vsix menjadi .zip secara manual, jadi Anda kemudian dapat mengklik kanan dan mengekstrak file. Kemudian yang harus Anda lakukan adalah meletakkan folder yang baru diekstrak ke folder data aplikasi pengguna Anda (% appdata% \ Local \ Microsoft \ VisualStudio \ {version} \ Extensions). Kemudian restart studio visual, buka Tools-> Extensions and Updates ..., kemudian cari "NoGit" dan aktifkan, lalu restart lagi.
Ben Wilde
4

Sakit di punggung selama seminggu dan saya tidak tahu bagaimana saya memulai layanan kendali sumber ini di VS2015. Tapi harus tahu bagaimana menghentikannya. Berikut adalah langkah-langkah untuk memisahkan git / sembarang kontrol sumber dengan VS2019.

Pergi ke VS -> Tools -> Options -> Source Control -> [Current Source Control Plug-in]

Anda mendapatkan semua kemungkinan kontrol sumber di sistem Anda dan opsi Tidak Ada. Jika Anda memilih Tidak Ada, Anda sudah siap. Milik saya diperbaiki setelah memilih opsi Tidak Ada, tekan ok dan mulai ulang VS dan tidak ada lagi kontrol sumber.

SRoy
sumber
3

Anda harus menutup semua solusi VS. mulai satu, atur Menu \ tools \ options \ Source Control \ Git -> None, tutup solusi ini ketika diminta. Sekarang, saat membuka solusi lain, opsinya tetap "Tidak Ada".

Sergei Meleshchuk
sumber
1

VS2015 menyedot 50% CPU saya saat idle. Saya belajar bahwa menonaktifkan Git adalah solusinya. Sayangnya menonaktifkan Git hanya untuk mempelajarinya secara otomatis mengaktifkannya kembali.

Dalam kasus saya, saya sebenarnya ingin menggunakan Git tetapi tidak dengan penggunaan cpu 50%.

Karena solusi NoGit hanya tersedia untuk VS2013, Anda dapat mengunduh: Git Source Control Provider meskipun Anda tidak menggunakan Git. Penggunaan CPU saya sekarang 2,2%, bukan 50% saat idle.

bluee
sumber
1

Saya juga mengalami masalah dengan Git di Visual Studio tetapi saya pikir saya akhirnya menemukan solusi yang berfungsi. Sampai saat ini saya telah menggunakan trik mengganti nama folder .git menjadi _git dan menambahkan textfile bernama .git yang berisi baris "gitdir: _git". Tetapi sejak memutakhirkan ke VS2019 itu tidak berfungsi lagi.

Saya telah mencoba banyak solusi berbeda, tetapi tidak ada yang berhasil karena saya memerlukan Git untuk beberapa proyek dan bukan untuk yang lain. Proyek masalah saya menggunakan Server Team Foundation perusahaan saya untuk kontrol sumber. Tetapi karena saya kehilangan kode dalam penggabungan buruk yang dibuat oleh TFS, saya melakukan perubahan saya ke repo Git lokal sebelum memperbarui atau melakukan ke TFS.

D:\Projects\TFS\.git Repo git lokal yang seharusnya tidak digunakan VS.

D:\Projects\TFS\ProjectA\$tf File TFS yang harus digunakan VS untuk ProjectA.

Tidak peduli bagaimana saya mencoba, saya tidak bisa mendapatkan VS untuk menggunakan TFS untuk ProjectA ketika menemukan folder .git di folder induk. Solusi saya adalah memindahkan folder .git ke:

D:\Projects\TFS-GIT\.git

dan membuat sambungan direktori ke folder ProjectA. Mulai prompt perintah yang ditinggikan dan jalankan:

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

Membuka D:\Projects\TFS\ProjectA\ProjectA.slndi Visual Studio, tidak akan menemukan folder .git dan akan terhubung ke TFS seperti seharusnya.

Menjalankan perintah git dari D:\Projects\TFS-GITakan menggunakan file yang sama dengan Visual Studio kecuali bahwa folder .git juga tersedia. TortoiseGit juga berfungsi dengan baik dari folder ini.

Anlo
sumber
0

Saya mengalami kesulitan menemukan solusi untuk ini, dan membuatnya setelah begitu banyak upaya, jadi saya tidak bisa tepat. Buat repositori lokal lain menggunakan GitHub Desktop di folder lain. Selesai, buka Visual Studio tanpa memuat proyek, sekarang Team Explorer akan menampilkan kedua repositori. Pilih repositori baru karena Anda harus melakukan beberapa operasi, pada tahap ini Anda dapat "menghapus" repositori lama Anda, karena yang baru adalah yang "aktif". Setelah melakukan ini, saya menghapus file .git * tersembunyi dari folder sebelumnya. Sekarang membuka proyek tidak menyebabkan repositori lama dibuat ulang lagi. Semoga ini membantu.

Stefano Losi
sumber
0

Itu gila tapi yang berhasil bagi saya adalah Mengosongkan Recycle Bin saya (yang berisi folder .git yang tidak diinginkan dari solusi saya).

Aku masih tidak percaya ...

Jérôme MEVEL
sumber
0

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

VS akan menampilkan kesalahan hanya sekali dan berfungsi dengan baik.

Ivan Shakhov
sumber
0

Ekstensi git ini memperlambat segalanya di IDE (VS 2015 dalam kasus saya). Saya harus menghapus seluruh folder TeamFoundation untuk menyingkirkan ini. Sisi negatifnya adalah Anda tidak akan dapat menggunakan Git dan TeamFoundation di Visual Studio 2015. Catatan: Cadangkan folder ini di tempat lain dan pulihkan bila diperlukan.

Untuk menghapus folder saya melakukan ini. Langkah-langkah yang saya ikuti untuk menghapus folder yang benar

Alasan saya melakukan ini adalah karena, VS 2015 menghasilkan nama folder acak untuk ekstensi TeamFoundation, jadi nama folder saya mungkin berbeda dari milik Anda.

Soundararajan
sumber
-2

Alat, Opsi, Kontrol Sumber, Pilihan Plug-in, Tidak Ada

Dale Fraser
sumber
8
Visual Studio 2013 tidak akan mempertahankan perubahan ini. Lain kali Anda membuka solusi, plugin Git akan secara otomatis memilih kembali jika mendeteksi direktori .git. Ia bahkan akan melakukan ini jika solusinya sudah terikat ke TFVC.
Mark W Dickson
-4

1) solusi tertutup dan studio visual. 2) masuk ke direktori solusi dan hapus direktori git tersembunyi dan 2 file teks git. 3) buka studio visual lagi. 4) alat goto -> opsi dan kontrol sumber. 5) pilih tidak ada. 6) Mulai ulang studio visual. 7) buka solusi Anda. 8) alat goto -> opsi dan kontrol sumber lagi dan pilih TFS. 9) dalam solusi, klik kanan untuk memilih tambahkan kontrol sumber ke solusi. 10) pilih tfs.

pengguna1813748
sumber
Mereka tidak menginginkan TFS dan mereka pasti TIDAK MAU menghapus folder .git karena akan menghapus seluruh riwayat komit lokal. Apa yang mereka minta adalah bagaimana mencegah VS menggunakan informasi dari folder .git, bukan bagaimana membersihkan folder itu.
quetzalcoatl
-5

Setel Tools \ Options \ Source Control kembali ke TFS. Tutup Visual Studio 2015. Buka folder akar kode sumber Anda. Hapus folder bernama ".git". Mengulang kembali.

Charlie Benson
sumber
4
Kedengarannya seperti Anda meminta op untuk menghapus folder dari git sepenuhnya. "Saya lebih suka mengelola kontrol sumber saya di baris perintah" sepertinya menunjukkan bahwa itu bukan solusi baginya.
Evren Kuzucuoglu