.vscodeフォルダーをソース管理にコミットする必要がありますか?


294

された.vscodeフォルダには、ソース管理にコミットされることを意味しますか?

新しいプロジェクトでは、settings.jsonファイルを除いてフォルダーは空です。このフォルダにはどのようなものが入りますか?それは.vsフォルダーのようにマシン固有、開発者固有であり、したがってコミットされませんか?または、すべての開発者がこのフォルダーを共有し、コミットする必要がありますか?

ファイルの上部にあるコメントには、.vscode/settings.json次のように記載されています。

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

これは、フォルダーにプロジェクト固有の設定が含まれているため、ソースに含まれている必要があることを意味しているようです。また、UserVoiceに関するこの投稿は、いくつかの入力が行われることを暗示しているようであり、コミットする必要があることも示唆しています。


Visual Studioでプロジェクトを開始してからコミットすると、適切な(少なくとも一般的な)開始.gitignore FEが存在するはずです。そこにいるつもりなら、おそらくそうなるでしょう。私が問題なく使用したこれを参照することもできます。
ChiefTwoPencils 2015年

2
@ChiefTwoPencils!レコードについては.gitignore、Visual Studioが作成するデフォルトでは.vscode、この時点でフォルダーが除外されています。しかし、VSコード自体はかなり新しいので、彼らはまだそれに慣れていないかもしれません。詳細については、フォルダを追跡しないでおきます。
RonaldZarīts、2015年

回答:


313

.vscode設定、タスク構成、デバッグ構成をチームと共有する場合は、フォルダーをチェックインします。チームで設定を適用したい場合は、一般的に設定(たとえば、空白とタブ)をチームと共有することが理にかなっていると思います。VS Codeチームでは、VS Codeのデバッグターゲットとタスクターゲットのセットを同じにするため、デバッグとタスク固有の設定も共有しています。

ところで.vscode、設定のためにプロジェクトにフォルダを用意する必要はありません。ユーザーレベルで設定を構成することもできます。


54
ありがとう!「私たちはVS Codeチームにいます...」で十分です-少なくとも始めは!
RonaldZarīts、2015年

97
「空白とタブ」などのファイルレベルの設定を共有する場合は、代わりにEditorConfigなどのクロスエディターソリューションを検討する必要があります。
Tanz87 2016年

2
このディレクトリには、80 MBサイズのサブディレクトリ「chrome」があります。これをリポジトリにコミットする必要がありますか?
ygoe 2017年

10
ワークスペース設定がVirtualEnvやAnaconda環境などの環境固有のpythonパスを持つPythonプロジェクトのようなものにVSCodeを使用してはなりません。これらのファイルをチェックすることは、ほとんどのシナリオで大きな問題のように聞こえます。代わりに、sample / defaultファイルをチェックインしてください。
StefanGordon 2018年

3
でフォローsymbols.jsonstackoverflow.com/questions/51876769/...
ripper234

39

コミット/無視の間には、3番目の賢いオプションがあります.default。サフィックス付きのコミットです。

たとえば、ファイルを使用して(私のチームで)よく行われているように、に追加settings.json.gitignoreてコミットできます。settings.json.default.env

このアドバイスをビデオコミットエディターの設定からバージョン管理に取り入れましたか?マティアス・ペッター・ヨハンソン


5
A settings.json.defaultは理にかなっていますが、これはチーム全体がvsコードを使用していて、コードベースがより広い対象者に共有されていないことを前提としています。私のオープンソースプロジェクトはGitHubにあります。コードベースの潜在的なユーザーに特定のIDEを強制したくないので、デフォルトのgitignoreに追加することを確認します。
jamescampbell

2
@jamescampbell IDE固有のファイルを追加しても、そのIDEがだれにも強制されることはほとんどありません。そのIDEをたまたま使用した場合に、共通の環境設定を取得するオプションが与えられるだけです。より大きな問題は、それらのファイルが公式にサポートされているかどうか、つまり常に最新で機能していることを目的としています。理論的には、異なるIDEの複数のIDE環境ファイルをすべて競合なしに存在させることができます。
LightCC

23
  • 決してコミットしない.vscode/settings.json-の奇妙な例外を除いてsearch.exclude。本当に必要な場合は、他の開発者に適用したいプロジェクトの特定の設定のみを入れるように十分注意してください。
  • 検証のため、書式設定、コンパイルの使用他のファイルが好きpackage.json.eslinttsconfig.json、など
  • 含めるのに意味がある唯一の.vscodeは、デバッグ用の複雑な起動構成です。
  • システムにサードパーティの拡張機能があり、そこに個人情報を置く可能性があることに注意してください。

できないのは、settings.jsonコンテンツファイル全体をにコピーして貼り付けること.vscode/settings.jsonです。私はこれをしている人がいるのを見ています、そしてファイルをコミットすることは残虐行為です。その場合、他のワークスペースを壊すだけでなく、最悪の場合、美観、UI、エクスペリエンスを好まないはずの設定をユーザーに強制することになります。一部はシステムに非常に依存しているため、環境を破壊する可能性があります。私のビジョンに問題があると想像してください。editor.*ユーザー設定がパーソナライズされており、プロジェクトを開くとビジュアルが変化します。ユーザーエディターを個人用に設定する必要がある視力の問題があると想像してください。私は怒るでしょう。

深刻な場合は、コミットしないでください.vscode/settings.json。一般に、検証、コンパイルなどの特定のプロジェクトに役立つ可能性のある設定は理にかなっていますが、一般に、.eslint、tsconfig.json、.gitignore、package.jsonなどの特定のツール構成ファイルを使用できます。など。vscodeの作成者は、新規ユーザーのエクスペリエンスを簡略化するためにファイルを追加しただけだと思いますが、真剣になりたい場合は、そうしないでください。

唯一の例外、そして非常に特殊なケースではsearch.exclude


3
あなたの提案.vscode/settingsは制限が多すぎると思います。可能であれば.eslint.editorconfigファイルを使用しますが、.vscode/settingsチーム/プロジェクトのすべての開発者間で設定を共有したい場合は、引き続きチェックインする必要があります
Matt Bierner

3
マット、なぜ他のすべての開発者がvscodeを使用していると思いますか?webstorm、vim、sublimeを使用している人がいる可能性があります。そのため、settings.jsonではなく、eslintなどを使用する必要があります。
Cancerbero

繰り返し.vscode/settingsますが、vscodeを使用するチームで作業しているのか、または多くの開発者がvscodeを使用しているプロジェクトで作業しているのかを確認することは理にかなっています。これらの設定のすべてに同等のクロスエディター機能があるわけではありません
Matt Bierner

@MattBiernerは、編集者を強制する会社でクローズソースプロジェクトを開発している場合は十分に公正ですが、それは一般的な状況ではなく、特にオープンソースプロジェクトではそうではありません...
Cancerbero

サードパーティの拡張機能に関するポイントは非常に有効です-例として、MS SQL拡張機能は接続プロファイルをプロジェクト/ワークスペースの設定に追加します。jsonが存在する場合はそれを追加します-資格情報を保存しませんが、サーバー名などをチェックする場合があります。
ダン・ハリス

17

他の答えを要約する

通常は.vscodeフォルダーを除外することをお勧めしますが、他の開発者が共有設定を再作成できるようにするJSONファイルを選択したままにします。

含める設定の例:

  • テストスイートを実行するための言語固有のテスト構成(settings.json
  • このリポジトリで使用される言語ルールを適用するためのリンターおよびコードフォーマットツールの拡張設定(settings.json
  • 構成の実行とデバッグ(launch.json
  • 共有タスク-VSコードで管理されている場合(tasks.json

一部の設定は、ワークスペースファイルに保存するか、.vscodeフォルダーからそこに転送できます。下記参照。


.gitignore使用するサンプルコード(およびそれを入手する場所)

https://gitignore.ioで提案されている設定は次のとおりです。そこで「VisualStudioCode」を検索して、最新の推奨.gitignoreファイルを取得できます。私はこのWebサイトを、.gitignore私の新しいリポジトリのほとんどの出発点として使用しています。

# 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

上記では.gitignore、ファイル、.vscode/*行がですべてを除外すると言う.vscodeフォルダが、その後!.vscode/a_specific_fileの行は(そのフォルダ内のいくつかの特定のファイルを無視し、「ない」にgitのを教えてくれsettings.jsonlaunch.jsonなど、)。その結果.vscode、他の行の1つで具体的に指定されたファイルを除いて、すべてがフォルダーから除外されます。


その他の要因と自分で理解する方法...

.vscodeリポジトリにフォルダーを含めても、実際には別のIDE(またはテキスト/コードエディター)を使用しているユーザーに害が及ぶことはありません。

ただし、これらのファイルに、環境に固有の何かが必要な一般的な設定が含まれている場合、VS Codeを使用している他の人に害を及ぼす可能性があります。pythonpath.vscode/settings.json)。重要なのは、ローカル環境に合わせたカスタム設定を保存せず、全員が使用できる設定のみを共有することです。

たとえば、IDE設定ファイルにリポジトリまたはファイル/ライブラリなどへの絶対パスがある場合、それは悪いことです。共有しないでください。ただし、すべての参照が相対である場合、レポを使用するすべての参照で機能します(ただし、Windows / Unix間のパス指定の違いに注意してください)。


ユーザー、ワークスペース、フォルダの設定について

注:.vscodeフォルダー内の設定ファイルは通常、設定のフォルダーバージョンに変更を加えた場合にのみ更新されます(ただし、多くの例外があるようです)。

  • ユーザー設定に変更を加えた場合、それらは通常別の場所に保存されます。
  • ワークスペースの設定に変更を加えると、それらは通常*.code-workspace現在使用しているフォルダーに保存されます(フォルダー設定ファイルに頻繁に移動しますが、手動で移動できます!)。

つまり、可能な限り、パーソナルPCのカスタム設定をユーザー設定に入れ、特定のプロジェクト/パッケージの一般的な設定を他のプロジェクト/パッケージに入れるべきです。

  • Python拡張機能を使用すると、.vscode/settings.jsonファイル(フォルダー設定を保存する)は常にpythonpath設定の下の絶対パスを保存するので、.gitignoreファイルからその除外を削除し、Pythonリポジトリに保存しなくなりました。相対パスで保存しても、VS Codeは絶対パスにリセットするだけです。
  • 代わりに、コードで使用する必要のあるフォルダーをワークスペースとして保存するだけmyproject.code-workspaceです(たとえば、[ファイル]-> [ワークスペースを名前を付けて保存]でファイルを作成します。こうすることで、ワークスペースファイルの内容を制御し、リポジトリに保存できます。フォルダ設定ファイル(.vscode/settings.json)。ワークスペースとフォルダ設定ファイルの間で設定を移動して、何を保存し、何を保存しないかを制御できます。ワークスペースファイルは、フォルダ設定ファイル内のすべてを上書きすることに注意してください。

長い点と短い点があります。ワークスペースファイルを使用して、最も一般的な設定をそこに配置し、ローカル設定をフォルダー設定ファイルに配置することができますが、これは使用している拡張機能/言語によって異なるようです。

もちろん、.vscode/settings.jsonファイルまたはその一部を保存する理由は他にもあります。または、現在の言語の設定では問題にならない場合があります。

あなたのマイレージは異なる場合があります...


10

この辺りの議論以外に、単に練習を見てみませんか?

.vscodeこれまでに見つけた最大のプロジェクトの1つがMozilla Firefoxです。Firefoxチームが共通のタスクと推奨される拡張機能を共有しているようです。

ですから.vscode、あなたが何をしているのかを知っている限り、を維持することは悪い考えではないと思います。

共有する他の大きなプロジェクトを見つけたら、この投稿を更新します.vscode


8

他の回答と同じ:いいえ。

例として、Git 2.19(2018年第3四半期)が選択したアプローチを検討してください。これにより、contrib/VSCodeのユーザーがGitコードベースでより適切に作業できるようにスクリプトが追加されます(に)。

つまり、.vscodeコンテンツを生成し(まだ存在しない場合)、バージョン管理しないでください。

参照12861e2をコミットし2a2cdd0をコミットし5482f41をコミットしf2a3b68をコミットし0f47f78をコミットしb4d991dをコミットし58930fdをコミットしdee3382コミット54c06c6コミットにより(2018年7月30日)のヨハネスSchindelin( )dscho
(合併によりJunio C浜野- gitster-30cf191コミットし、2018年8月15日)を

contrib:VSコード構成を初期化するスクリプトを追加する

VS Codeは軽量で強力なソースコードエディターで、デスクトップで実行され、Windows、macOS、Linuxで利用できます。
他の言語の中でも、拡張機能を介したC / C ++のサポートがあり、コードのビルドとデバッグだけでなく、Intellisenseも提供しています。

このパッチは、VS Codeで効果的に動作するように環境を設定するのに役立つスクリプトを追加します。Unixシェルスクリプトを実行しcontrib/vscode/init.shて関連ファイルを作成し、VS CodeでGitのソースコードの最上位フォルダーを開きます


1

答えは「いいえ」です。これは、.vscodeフォルダーがこのエディター用であり、他のユーザーを混乱させる場合にこれらの個人設定をリポジトリにプッシュしないでください。変更を無視するために、プロジェクトの.gitignoreファイルに追加できます。


17
私は君の厳しいスタンスには反対だ。@BenjaminPaseroの回答で述べたように、必須ではありませんが、タスク構成の共有など、多くの場合に意味があります。もちろん、チームメイトに気を配り、不必要にチームメイトを優先させないことは良いことです。
RonaldZarīts17年

私たちが別のユーザー設定とワークスペースの設定(持っている理由はい、これは.vscode/settings.json、ワークスペース内のファイル):code.visualstudio.com/docs/getstarted/...ワークスペースの設定の中に、このようなツールの設定、外出先として唯一のものを
マットBierner

@RonaldZarīts .vscodeフォルダは、独自のエディタの設定やコードのスタイルについてですが、私はそれは私が前に言ったように、gitの制御フローにフォルダをプッシュしていない、ただ自身の使用のためだと思います。
jialin wang

6
@jialinwangすみません、私はすでにしました。;)冗談はさておき、たとえば、私たちが持っている私のプロジェクト(1)で共有するのに役立つ項目も含まlaunch.jsonれています。(2)settings.json使用するTypeScriptコンパイラーのようなプロジェクトレベルの設定、空白ルール、(3)tasks.json-コマンドのビルド。共有しないように選択することもできますが、それは役に立ちます。
RonaldZarīts2017

@jialinwangいいえ、そうではありません。これらはフォルダレベルの設定です。トップレベルのものを含めるだけでなく、サブフォルダーに固有の設定がある場合は、それらも含める必要があります。重要なことは、ユーザーの好みを維持することですから(これはだけでなく、他の理由のために重要である)フォルダレベルの設定の。フォルダーレベルの設定に必要なものは、フォルダー全体に適用する必要があります。フォーマッター、リンター、空白の規則(たとえば、最後の末尾の新しい行のトリミング、タブサイズなど)...
DylanYoung

1

プロジェクトのgitリポジトリにコミットせずに設定を保持する簡単な方法は、ワークスペースを作成し、そこにフォルダーを追加することです。

ワークスペースを作成するときは、ファイルを保存する必要がありますcode-workspace。このファイルには、単にのgitリポジトリのうち、このファイルの保存、カスタム設定が含まれており、追加して無料になります.vscode.gitignoreファイル。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.