web-dev-qa-db-ja.com

Visual Studio 2017 15.3.0 gitの変更には、.gitignoreの.vs /が「storage.ide」を含む

VS 2017を数日前に15.3.0にアップグレードしました。それ以来、ファイル "storage.ide"は、 VSの.gitignoreを推奨 を使用して、変更したファイルに残りました。これには.vs /フォルダーが含まれます。これには次のものが含まれます。

# Visual Studio 2015 cache/options directory
.vs/

次に、追跡するファイルのリストからこれを無視することについてより具体的にするために、以下を追加しました

.vs/SIASAWeb/v15/sqlite3/storage.ide
.vs/**/storage.ide

チームエクスプローラーの変更には、次の内容が表示されます。

<project folder>
  .vs/<project>/v15/sqlite3
    storage.ide

私はこのファイルをgitリセットしようとしましたが、これは次のコミットで戻り、開いたすべてのブランチにも存在します。これにより、変更が行われていなくても、あるブランチから別のブランチに簡単に移行できなくなります。

ソリューションエクスプローラーでは、「applicationhost.config」および「.suo」ファイルは「無視」としてマークされますが、「storage.ide」は「保留中の編集」としてマークされます。

私はコミットを試み、GitHubサーバーに同期し、VSを閉じて再度開き、コンピューターを再起動しました。

私の質問は、このファイルをgitでは無視する必要があるにもかかわらず、変更されたファイルとして保持されている理由です。

32
Roger Layton

これを修正するには、[チームエクスプローラー]タブに移動して[接続の管理]ボタン(緑色のボタン)をクリックすると、ローカルGitリポジトリのリストが表示されます。

Storage.ideファイルの追跡を停止するリポジトリを右クリックし、[コマンドプロンプトを開く]を選択します。

その後、次のように入力できるはずです。

git rm --cached -r .vs

これにより、.vsフォルダーとそのコンテンツおよびサブディレクトリがgitで追跡されなくなります。

53
Liam

これはおそらく、ある時点でgitリポジトリに誤って追加され、その後無視されたことを意味します。 gitは、インデックスに存在する( "チェックイン")場合、gitignoredファイルへの変更を追跡し続けます。

ファイルをまったくチェックインしたくない場合は、実行してインデックスから削除できます。

git rm path/to-file --cached

実行できるファイルをまったく存在させたくない場合は、ディスク上のコンテンツを保持します

git rm path/to-file --force

(たとえば)ベースプロジェクトファイルをプロジェクトで作業するための開始点としてチェックインする場合は、これは望ましくない場合があることに注意してください。そして、あなたはnotその特定のファイルをコミットすることに注意する必要があるかもしれません。

20
Anthony Sottile

以下は私のために問題を解決したようです。

# Visual Studio 2015/2017 cache/options directory
*.vs/

その中のすべてを無視します。

8
Noctis

私は同じ問題を抱えていました。 Visual Studioのチームエクスプローラー(Team Explorer => Some git directory => Settings => Repository Settings => Gitignore file Add)からまったく新しい.gitignoreファイルを作成して解決しました。

次に、プロジェクトフォルダー内の.vsを削除し、次の行を使用してgit bashによって手動でコミットしました。

git add *.*
git commit -m "Removing some files"
git Push Origin master