.Vscode klasörünü kaynak denetimine almalı mıyım?


295

Is .vscodeklasör kaynak kontrolüne bağlı olmasını gerekiyordu?

Yeni bir projede, settings.jsondosya dışında klasör boştur . Bu klasöre ne tür şeyler girer? Makineye özgü, .vsklasör gibi geliştiriciye özgü ve bu nedenle taahhüt edilmiyor mu? Yoksa tüm geliştiriciler bu klasörü paylaşmalı mı ve bu nedenle mi işlenmelidir?

Dosyanın üst kısmındaki yorumda şunlar .vscode/settings.jsonbelirtilir:

// Place your settings in this file to overwrite default and user settings.
{
}

Bu, klasörün projeye özgü ayarları içermesi ve dolayısıyla kaynağa dahil edilmesi gerektiği anlamına gelir. Ayrıca, UserVoice'deki bu yazı, bazı yazıların oraya gideceğini ima ediyor gibi görünüyor, ayrıca işlenmesi gerektiğini gösteriyor.


Visual Studio'da bir proje başlatır ve sonra bunu taahhüt varsa uygun (en azından tipik) bir başlangıç ​​.gitignore FE olmalıdır. Orada olması gerekiyorsa, muhtemelen olacak. Ayrıca başvuruda bulunabilir bu ben sorun olmadan kullandım hangi.
ChiefTwoPencils

2
İyi bir fikir, @CefiefTwoPencils! Kayıt için, .gitignoreVisual Studio'nun oluşturduğu varsayılan .vscodeklasör şu anda hariç tutulan klasöre sahiptir . Ancak VS Code'un kendisi oldukça yeni olduğu için, henüz etrafta dolaşmamış olabilirler. Daha fazla bilgi alırken klasörü şimdilik izlemeden bıraktım.
Ronald Zarīts

Yanıtlar:


314

.vscodeAyarları, görev yapılandırmasını ve hata ayıklama yapılandırmasını ekiple paylaşmak isteyip istemediğinizi kontrol edin . Ayarları bir ekipte uygulamak istiyorsanız, ayarları (örn. Boşluk ve sekmeler gibi) ekiple paylaşmak genellikle mantıklıdır. VS Code ekibinde hata ayıklamayı ve göreve özgü ayarları da paylaşıyoruz, çünkü ekibimizin VS Kodu için aynı hata ayıklama hedeflerine ve görev hedeflerine sahip olmasını istiyoruz.

Ancak .vscode, ayarlar için projenizde bir klasör olması gerekmez . Ayarları kullanıcı düzeyinde de yapılandırabilirsiniz.


54
Teşekkürler! "Biz VS Kod takımında ..." benim için yeterince iyi - en azından başlamak için!
Ronald Zarīts

97
"Boşluk ve sekmeler" gibi dosya düzeyi ayarlarını paylaşmak istiyorsanız bunun yerine EditorConfig gibi çapraz editör çözümlerine bakmalısınız .
Tanz87

2
Bu dizinde 80 MB boyutunda bir alt dizin "krom" vardır. Bunun depoya taahhüt edilmesi gerektiğinden emin misiniz?
ygoe

10
VSCode'u, çalışma alanı ayarlarının VirtualEnv veya Anaconda ortamları için ortama özgü python yollarına sahip olacağı bir python projesi gibi bir şey için kullanmamalısınız. Bu dosyaları çoğu senaryo için büyük bir sorun gibi seslerle kontrol etmek. Bunun yerine bir örnek / varsayılan dosya teslim edin.
StefanGordon

3
İzleme tarihi symbols.json: stackoverflow.com/questions/51876769/…
ripper234

39

Taahhüt / yoksay arasında üçüncü akıllı seçenek vardır: sonekle taahhüt .default.

Örneğin ekleyebilir settings.jsoniçin .gitignoreve taahhüt settings.json.defaultbunun yaygın bir uygulama ile (benim takımımda) 'dir çok gibi,.env dosya.

Bu tavsiyeyi video yürütme editörü ayarlarından sürüm kontrolüne mi aldım ? ile Mattias Petter Johansson


5
Bir settings.json.defaultmantıklı ama bu tüm ekip kodu vs kullanıyor ve kod temeli daha geniş bir kitleye paylaşılan değildir üstleniyor. GitHub'daki açık kaynak projelerimi buldum, sadece varsayılan gitignore'uma eklediğimden eminim, çünkü kod tabanımın potansiyel kullanıcıları için belirli bir IDE'yi zorlamak istemiyorum.
jamescampbell

3
@jamescampbell IDE'ye özgü dosyalar eklemek neredeyse hiç IDE'yi kimseye zorlamaz - bu IDE'yi kullanmaları durumunda onlara ortak ortam ayarlarınızı alma seçeneği sunar. Daha büyük soru, bu dosyaların resmi olarak desteklenip desteklenmediğidir - yani her zaman güncel ve çalışır durumda olması amaçlanmıştır. Teorik olarak, farklı IDE'ler için herhangi bir çakışma olmadan birden fazla IDE ortam dosyasına sahip olabilirsiniz.
LightCC

23
  • Asla taahhüt .vscode/settings.json- tuhaf istisna hariç search.exclude. Gerçekten ihtiyacınız varsa, yalnızca projenize özgü diğer geliştiricilere uygulamak istediğiniz ayarları koymaya çok dikkat edin .
  • doğrulama için, biçimlendirme, derleme kullanımı, diğer dosyalar gibi package.json, .eslint, tsconfig.jsonvb
  • Eklenmesi mantıklı olan tek .vscode hata ayıklama için karmaşık başlatma yapılandırmalarıdır.
  • Dikkat edin, sisteminizde özel bilgileri oraya yerleştirebilecek bir üçüncü taraf uzantısı olabilir!

Yapamayacağınız şey, settings.json içerik dosyasının tamamını kopyalayıp yapıştırmaktır .vscode/settings.json. Bunu yapan ve dosyayı işleyen bazı kişilerin bir acımasızlık olduğunu görüyorum. Bu durumda sadece başkalarının çalışma alanını kırmakla kalmayacak, aynı zamanda en kötüsü de, kullanıcılara estetik, kullanıcı arayüzü, deneyim sevmemeniz gereken ayarları uygulayacaksınız. Muhtemelen çevrelerini kıracaksınız çünkü bazıları çok sisteme bağımlı. Görme sorunları editor.*yaşadığımı düşünün, böylece kullanıcı ayarlarım kişiselleşiyor ve projenizi açtığımda görseller değişiyor. Görme sorunlarım olduğunu düşünün s Kullanıcı düzenleyiciyi kişiselleştirmem gerekiyor. Kızgın olurdum.

Eğer ciddi iseniz taahhüt etmeyin .vscode/settings.json. Genel olarak, doğrulama, derleme gibi belirli bir proje için yararlı olabilecek ayarlar mantıklıdır, ancak genel olarak .eslint, tsconfig.json, .gitignore, package.json gibi belirli araç yapılandırma dosyalarını kullanabilirsiniz. vs sanırım vscode yazarlar sadece yeni gelen deneyimini basitleştirmek için dosya ekledi ama ciddi olmak istiyorsanız etmeyin!

Tek istisna ve çok özel durumlarda search.exclude olabilir


3
Hakkında önerilerinizin .vscode/settingsçok kısıtlayıcı olduğunu hissediyorum . Kullanım .eslintveya .editorconfigdosyalar mümkünse, ama yine de kontrol etmelisiniz .vscode/settingsEğer gerçekten bir ayar bir ekip / proje üzerinde tüm geliştiriciler arasında paylaşılacak istiyoruz eğer
Matt Bierner

3
Matt, neden diğer tüm geliştiricilerin vscode kullandıklarını düşünüyorsun? Webstorm, vim, sublime kullanan insanlar olabilir, bu yüzden settings.json ile değil eslint, vb. İle çalışmalısınız.
cancerbero

Yine, .vscode/settingsvscode kullanan bir ekip üzerinde çalışıyorsanız veya birçok geliştiricinin vscode kullandığı bir proje üzerinde çalışıp çalışmadığınızı kontrol edin. Bu ayarların hepsinde çapraz editör eşdeğeri yoktur
Matt Bierner

@MattBierner yeterince adil, eğer editörü uygulayan bir şirkette yakın kaynaklı projeler geliştiriyorsanız, ancak bunun ortak bir durum olduğunu ve özellikle açık kaynak projelerinde olduğunu
sanmıyorum

Üçüncü taraf uzantılarıyla ilgili nokta çok geçerli - Örnek olarak MS SQL Uzantısının proje / çalışma alanı ayarlarına bağlantı profilleri ekleyeceğine inanıyorum. Eğer varsa - Kimlik bilgilerini depolamasa da sunucu adlarını kontrol ediyor olabilir. .
Dan Harris

18

Diğer cevapları özetlemek

Öneri genellikle .vscodeklasörü hariç tutmaktır, ancak diğer geliştiricilerin paylaşılan ayarları yeniden oluşturmasına izin veren belirli JSON dosyalarını bırakın.

Eklenecek ayar örnekleri:

  • Test paketlerini çalıştırmak için dile özgü test yapılandırmaları ( settings.json)
  • Bu repoda kullanılan dil kurallarını uygulamak için linters ve kod biçimlendirme araçları için uzantı ayarları ( settings.json)
  • Yapılandırmaları çalıştırma ve hata ayıklama ( launch.json)
  • Paylaşılan görevler - VS Kodu ( tasks.json) ile yönetiliyorsa

Bazı ayarların çalışma alanı dosyasında saklanabileceğini veya .vscode klasöründen bu dosyaya aktarılabileceğini unutmayın. Aşağıya bakınız.


Kullanılacak örnek .gitignorekod (ve nereden alınacağı)

Https://gitignore.io adresinde önerildiği gibi ayarlar . En son önerilen .gitignoredosyayı almak için orada "VisualStudioCode" arayabilirsiniz . Bu web sitesini .gitignoreyeni depolarımın çoğu için başlangıç ​​noktası olarak kullanıyorum :

# Created by https://www.gitignore.io/api/visualstudiocode
# Edit at https://www.gitignore.io/?templates=visualstudiocode

### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

### VisualStudioCode Patch ###
# Ignore all local history of files
**/.history

# End of https://www.gitignore.io/api/visualstudiocode

Yukarıdaki olarak .gitignoredosyada, .vscode/*çizgi her şeyi dışlamak için diyor .vscodeklasörde, ama sonra !.vscode/a_specific_filehatlarına bu klasöre (bazı belirli dosyaları görmezden "değil" git'e tell settings.json, launch.jsonvs.). Sonuçta, .vscodebu diğer satırlardan birinde özel olarak adlandırılan dosyalar dışında her şey klasörde hariç tutulur .


Diğer Faktörler ve Kendiniz Nasıl Anlaşılır ...

Deponuza .vscodeklasörü dahil etmek aslında farklı bir IDE (veya metin / kod düzenleyicisi) kullanan kimseye zarar vermez .

Ancak, bu dosyalar ortamınıza özgü bir şey gerektiren, ortamlarında farklı olan genel ayarlar içeriyorsa, deponun yüklendiği mutlak yol gibi (VS Kodu Python uzantısının sürekli olarak koyduğu) VS Kodu kullanan diğer insanlara zarar verebilir. pythonpathiçinde .vscode/settings.json). Anahtar, yerel ortamınıza özel ayarları kaydetmekten kaçınmak ve yalnızca herkes tarafından kullanılabilen ayarları paylaşmaktır.

Örneğin, IDE ayar dosyalarının repo veya herhangi bir dosya / kitaplık vb. İçin mutlak yolları varsa, bu kötüdür, paylaşmayın. Ancak tüm referanslar göreceli ise, o zaman repo kullanan herkes için çalışmalıdır (ancak, Windows / Unix .. arasındaki yol belirtimi farklılıkları konusunda dikkatli olun.).


Kullanıcı, Çalışma Alanı ve Klasör ayarları hakkında

Not:.vscode klasördeki ayarlar dosyaları genellikle yalnızca ayarların klasör sürümünde değişiklik yaptığınızda güncellenir (yine de çok fazla istisna var gibi görünüyor).

  • Kullanıcı ayarlarında değişiklik yaparsanız , bunlar genellikle başka bir yerde saklanır.
  • Çalışma alanı ayarlarında değişiklik yaparsanız , bunlar normalde*.code-workspace kullanmakta olduğunuz klasörde saklanır (yine de genellikle klasör ayarları dosyalarına giderler - ancak bunları el ile taşıyabilirsiniz!).

Bu, kişisel PC'niz için özel ayarları kullanıcı ayarlarına koymanız ve belirli bir proje / paket için genel ayarları diğerlerine mümkün olduğunca koymanız gerektiği anlamına gelir .

  • Python uzantısını kullanırken, .vscode/settings.jsondosya ( klasör ayarlarını kaydeder ) her zaman pythonpathayarın altında mutlak yolu kaydeder , bu yüzden hariç tutma .gitignoredosyalarımdan kaldırdım ve artık Python depolarıma kaydetmedim. Göreceli bir yolla kaydetsem bile, VS Code sadece mutlak yola sıfırlar.
  • Bunun yerine, Kod'da bir çalışma alanı olarak kullanmam gereken herhangi bir klasörü myproject.code-workspacekaydederim (örneğin , Dosya -> Çalışma alanını farklı kaydet .) (klasör ayarları dosyası .vscode/settings.jsonHemen hemen ne kaydedilmesini neyin yaramadığını kontrol etmek çalışma alanı ve klasör ayarları dosyaları arasında herhangi bir ayarı hareket edebilir).. Sadece çalışma alanı dosya klasörü ayar dosyasında her şeyi geçersiz kılar unutmayın.

Uzun ve kısa - sadece bir çalışma alanı dosyası kullanabilir ve en yaygın ayarları içine koyarken, yerel ayarları klasör ayarları dosyasına koyabilirsiniz , ancak bu hangi uzantıları / dilleri kullandığınıza bağlı gibi görünmektedir.

Tabii ki, .vscode/settings.jsondosyayı veya bir kısmını kaydetmek için başka nedenleriniz olabilir . Veya bu, geçerli dilinizdeki ayarlar için bir sorun olmayabilir.

Kilometre Değişebilir ...


10

Neden sadece buradaki argümanlar dışında pratiğe bakmıyoruz?

.vscodeŞimdiye kadar bulduğum en büyük projelerden biri Mozilla Firefox . Firefox ekibi ortak görevlerini ve önerilen uzantılarıpaylaşıyor gibi görünüyor.

Bu yüzden .vscodene yaptığınızı bildiğiniz sürece tutmak kötü bir fikir değil sanırım .

Paylaşan diğer büyük projeleri gördüğümde bu yayını güncelleyeceğim .vscode.


8

Diğer cevaplarla aynı: hayır.

Örnek olarak, Git 2.19 (Q3 2018) tarafından seçilen contrib/ve VSCode kullanıcılarının Git kod tabanıyla daha iyi çalışmasına yardımcı olacak bir komut dosyası (in ) ekleyen yaklaşımı düşünün .

Başka bir deyişle, .vscodeiçeriği oluşturun (henüz mevcut değilse), sürüm yapmayın.

Bkz 12861e2 işlemek , 2a2cdd0 taahhüt , 5482f41 taahhüt , f2a3b68 taahhüt , 0f47f78 işlemek , b4d991d işlemek , 58930fd taahhüt , dee3382 işlemek , 54c06c6 taahhüt tarafından (2018 30 Tem) (Johannes Schindelin dscho) .
(Tarafından Birleştirilmiş - Junio C Hamano gitster- içinde 30cf191 taahhüt 2018, 15 Aug)

contrib: VS Kod yapılandırmasını başlatmak için bir komut dosyası ekleyin

VS Code, masaüstünüzde çalışan ve Windows, macOS ve Linux için kullanılabilen hafif ancak güçlü bir kaynak kodu düzenleyicisidir.
Diğer diller arasında, sadece kodu oluşturmak ve hata ayıklamakla kalmayıp Intellisense, yani kod farkında tamamlama ve benzer özellikler sunan bir uzantı aracılığıyla C / C ++ desteği vardır.

Bu düzeltme eki, ortamın VS Kodu ile etkili bir şekilde çalışmasına yardımcı olan bir komut dosyası ekler: ilgili dosyaları oluşturan Unix kabuk komut dosyasını çalıştırmanız ve contrib/vscode/init.shGit'in kaynak kodunun en üst düzey klasörünü VS Kodu'nda açmanız yeterlidir .


1

Cevap "HAYIR" dır , çünkü .vscode klasörü bu düzenleyiciye yöneliktir ve başkalarını karıştırmak durumunda bu kişisel ayarları yeniden oluşturmak için zorlamamalısınız, böylece değişiklikleri yok saymak için projenizin .gitignore dosyasına ekleyebilirsiniz.


17
Senin sıkı tutumuna katılmıyorum. @BenjaminPasero'nun cevabında belirtildiği gibi, bunu yapmak zorunda değilsiniz, ancak birçok durumda, örneğin görev yapılandırmasını paylaşma mantıklıdır. Tabii ki, birinin takım arkadaşlarına dikkat etmek ve gereksiz yere tercihleri ​​zorlamamak iyidir.
Ronald Zarīts

Evet, bu yüzden ayrı kullanıcı ayarları ve çalışma alanı ayarlarımız var (çalışma alanındaki .vscode/settings.jsondosya): code.visualstudio.com/docs/getstarted/… Yalnızca araç yapılandırması gibi şeyler çalışma alanı ayarlarına girer
Matt Bierner

@ RonaldZarīts .vscode klasörü kendi editörünüzün ayarı ve kod stilleri ile ilgilidir, bence bu sadece kendi kullanımı içindir, bu yüzden daha önce söylediğim gibi, klasörü kontrol akışına itmeyin.
jialin wang

6
@jialinwang Üzgünüm, zaten yaptım. ;) Şakalar bir yana, aynı zamanda paylaşmak için yararlı olan öğeler içerir, örneğin benim projemde (1) launch.json- hata ayıklama için kurulumları önemsiz olabilecek başlatma yapılandırmaları var. (2) settings.jsonkullanılacak TypeScript derleyicisi, boşluk kuralları, (3) tasks.json- derleme komutları gibi proje düzeyi ayarları . Paylaşmamayı seçebilirsiniz, ancak yararlı buluyoruz.
Ronald Zarīts

@jialinwang Hayır değiller. Klasör düzeyinde ayarlardır. Yalnızca üst düzey olanı değil, alt klasörlere özgü ayarlarınız varsa bunları da eklemeniz gerekir. Önemli olan, kullanıcı tercihlerinizi klasör düzeyinde ayarların dışında tutmaktır (bu, başka nedenlerle de önemlidir). Klasör düzeyindeki ayarlarınızda olması gereken şeyler tüm klasöre uygulanmalıdır: biçimlendiriciler, linterler, boşluk kuralları (örneğin, sondaki yeni satırları, sekme boyutunu kırpın ...) ...
DylanYoung

1

Ayarlarınızı projenize kaydetmeden saklamanın basit bir yolu, bir çalışma alanı oluşturmak ve içine klasör eklemektir.

Bir çalışma alanı oluşturduğunuzda, bir dosya kaydetmeniz gerekir code-workspace. Bu dosya sadece git depo dışına bu dosyayı kaydetmektedir, özel ayarlar içerir ve eklemek ücretsiz olacak .vscodeiçine .gitignoredosyası.

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.