VSCode 同じリポジトリを再クローンできない場合の対処

PR

概要

VS Codeで一度クローンしたリポジトリを再度クローンしようとすると、保存先の選択画面が表示されず、そのまま既存のワークスペースが開いてしまう現象が発生した。

この問題はGit側ではなく、VS Code側に保存された状態情報が影響していた可能性が高い。

PR

発生していた症状

  • 初回のクローン時は保存先の選択画面が表示される
  • 一度クローンしたことがあるリポジトリでは、保存先の選択画面が出ない
  • クローン処理ではなく、既存のワークスペースがそのまま開くような挙動になる
  • 結果として、別フォルダに再クローンできない
PR

実際に解決した方法

最終的には、以下のファイルを削除したことで問題が解消した。

C:\Users\<ユーザー名>\AppData\Roaming\Code\User\globalStorage\state.vscdb

下記のパスをコピーして、エクスプローラーのアドレスバーや「ファイル名を指定して実行」で貼り付けてアクセスしてみると良い。

%USERPROFILE%\AppData\Roaming\Code\User\globalStorage\

これにより、VS Code全体の内部状態がリセットされ、クローン時の不正な挙動も解消した。 但し、拡張機能などのログイン状態は初期化され、再度ログインするなどの対応が必要だった。

なぜ解決したのか

state.vscdb は、VS Codeが内部的に保持している状態情報を管理するデータベースファイルである。

この中には、例えば以下のような情報が含まれていた可能性がある。

  • 最近開いたフォルダやワークスペースの情報
  • 拡張機能ごとの状態情報
  • GitHub関連拡張の履歴
  • ワークスペース復元情報
  • UIの一時的な状態

これらの状態が壊れていた、または古い情報が残っていたことで、クローン時に本来の保存先選択画面が出ず、既存ワークスペースを開く動作になっていた可能性がある。

再発時の対処手順

同様の問題が再発した場合は、次の順で確認すると切り分けしやすい。

  1. Ctrl + Shift + P でコマンドパレットを開く
  2. File: Clear Recently Opened を実行する
  3. git.defaultCloneDirectory の設定を確認する
  4. VS Codeを完全終了する
  5. workspaceStorageglobalStorage を確認する
  6. 必要に応じて state.vscdb を退避または削除する

より安全な実施方法

再度同じ対応を行う場合は、いきなり削除するのではなく、まずリネームして退避する方法が安全である。 エクスプローラ 例:

Rename-Item "$env:APPDATA\Code\User\globalStorage\state.vscdb" "state.vscdb_backup"

この方法であれば、問題が解消するか確認したうえで、必要なら元に戻せる。

まとめ

今回の問題は、VS Codeで過去に開いたリポジトリやワークスペースの状態情報が残っていたことで、クローン先の選択処理が正しく動かなくなっていた可能性が高い。

globalStorage\state.vscdb を削除したことで内部状態がリセットされ、正常にクローンできるようになった。

今後同じ問題が起きた場合は、他の対応方法でも改善しない場合に state.vscdb の退避・削除を検討するのがよい。

\ITメモが役に立ったら/

ITメモをサポートする!
開発環境
PR

コメント

タイトルとURLをコピーしました