概要
VS Codeで一度クローンしたリポジトリを再度クローンしようとすると、保存先の選択画面が表示されず、そのまま既存のワークスペースが開いてしまう現象が発生した。
この問題はGit側ではなく、VS Code側に保存された状態情報が影響していた可能性が高い。
発生していた症状
- 初回のクローン時は保存先の選択画面が表示される
- 一度クローンしたことがあるリポジトリでは、保存先の選択画面が出ない
- クローン処理ではなく、既存のワークスペースがそのまま開くような挙動になる
- 結果として、別フォルダに再クローンできない
実際に解決した方法
最終的には、以下のファイルを削除したことで問題が解消した。
C:\Users\<ユーザー名>\AppData\Roaming\Code\User\globalStorage\state.vscdb下記のパスをコピーして、エクスプローラーのアドレスバーや「ファイル名を指定して実行」で貼り付けてアクセスしてみると良い。
%USERPROFILE%\AppData\Roaming\Code\User\globalStorage\これにより、VS Code全体の内部状態がリセットされ、クローン時の不正な挙動も解消した。 但し、拡張機能などのログイン状態は初期化され、再度ログインするなどの対応が必要だった。
なぜ解決したのか
state.vscdb は、VS Codeが内部的に保持している状態情報を管理するデータベースファイルである。
この中には、例えば以下のような情報が含まれていた可能性がある。
- 最近開いたフォルダやワークスペースの情報
- 拡張機能ごとの状態情報
- GitHub関連拡張の履歴
- ワークスペース復元情報
- UIの一時的な状態
これらの状態が壊れていた、または古い情報が残っていたことで、クローン時に本来の保存先選択画面が出ず、既存ワークスペースを開く動作になっていた可能性がある。
再発時の対処手順
同様の問題が再発した場合は、次の順で確認すると切り分けしやすい。
Ctrl + Shift + Pでコマンドパレットを開くFile: Clear Recently Openedを実行するgit.defaultCloneDirectoryの設定を確認する- VS Codeを完全終了する
workspaceStorageやglobalStorageを確認する- 必要に応じて
state.vscdbを退避または削除する
より安全な実施方法
再度同じ対応を行う場合は、いきなり削除するのではなく、まずリネームして退避する方法が安全である。 エクスプローラ 例:
Rename-Item "$env:APPDATA\Code\User\globalStorage\state.vscdb" "state.vscdb_backup"この方法であれば、問題が解消するか確認したうえで、必要なら元に戻せる。
まとめ
今回の問題は、VS Codeで過去に開いたリポジトリやワークスペースの状態情報が残っていたことで、クローン先の選択処理が正しく動かなくなっていた可能性が高い。
globalStorage\state.vscdb を削除したことで内部状態がリセットされ、正常にクローンできるようになった。
今後同じ問題が起きた場合は、他の対応方法でも改善しない場合に state.vscdb の退避・削除を検討するのがよい。
コメント