Git/GitHub

VSCodeのソース管理に「保留中の変更」が大量発生しているのを直したい

takahide

おはようございます。タカヒデです。

本日は、「VSCodeのソース管理に「保留中の変更」が大量発生した場合に直す方法」を紹介します。

こんな人にオススメ
  • VSCodeのソース管理に大量の「保留中の変更」が出てしまった方

ぜひ本記事を参考にして解決させてください。

発生した事象

VSCodeでWSLを利用していたら「ソース管理」に大量の保留中発生。

作ったファイルは数個なのに、「保留中の変更10,000個」。うーん明らかにおかしい。何か間違えている。

ということで今回はそんな事象が起きた時の対処法を紹介します。

原因:Gitリポジトリがホームディレクトリになっていた

先に原因を伝えると、Gitを管理するリポジトリが「プロジェクトのディレクトリ」ではなく「ホームディレクトリ」になっていたというもの。

本来Gitは「各プロジェクトフォルダ」に使うものです。

しかし、過去に意図せずどこかでのタイミングで、「ホームディレクトリに対しGit操作」をしてしまったが為に、ホーム直下にGitができていました。

その結果、Gitは「ホーム配下の全部ファイルを、1つのプロジェクトとして管理する」と認識してしまったようです。

これにより、VSCodeのソース管理が「10,000件」となってしまいます。

現在の状態の確認

実際に、いまどのリポジトリを見ているか確認してみましょう。
以下のコマンドを実行してください。

git rev-parse --show-toplevel

正しい状態であれば以下のようにプロジェクトフォルダが出てきます。

/home/takahide/test

一方、NGの状態だと、ホームディレクトリになっています。
これは「ホーム全体がリポジトリ」になっている状態です。

早速直していきましょう。

対処:誤って作成した.gitを退避・削除する

では対処方法です。
2種類の方法を紹介します

  1. ホーム直下にできた「.git」を削除する(最短方法)
  2. 「.git」を削除せず退避する(安全策)

ではそれぞれ見ていきましょう。

方法①:ホーム直下にできた「.git」を削除する(最短方法)

ホーム直下にできた、「.git」を削除する方法です。
簡単かつ、一発で静かになります。

手順①:ホームディレクトリにいることを確認

まずは、以下のコマンドを実行し、ホームディレクトリにいるかどうかを確認してください。

pwd

手順②:ホーム直下の「.git」を削除

ホーム直下にある「.git」を削除します。以下のコマンドを実行してください。

rm -rf ~/.git

手順③:確認

これで「.git」は削除されています。
正しく削除されているか確認しましょう。

git rev-parse --show-toplevel

↓こんな感じの結果が出れば完了です。

これでホームディレクトリがGit管理されている状態は解除されました。
↓大量のソース管理が消えていることが分かります。

方法②:「.git」を削除せず退避する(安全策)

「いやいや、いきなり削除するのは怖いから嫌よ」

そんな場合はこちらの「削除せず退避する方法」を活用してください。
こちらも最終的には削除しますが、安全を確認した後に削除することができます。

手順①:ホームディレクトリにいることを確認

まずは、以下のコマンドを実行し、ホームディレクトリにいるかどうかを確認してください。

pwd

手順②:「.git」をリネームする

削除より先に、「.git_BACKUP」といった名前にリネームします。
これでホームディレクトリはリポジトリ扱いされなくなります。

mv ~/.git ~/.git_BACKUP

手順③:確認

これで「.git」は削除されています。
正しく削除されているか確認しましょう。

git rev-parse --show-toplevel

↓こんな感じの結果が出ればOKです。

手順④:問題がなければバックアップを削除

しばらく使って問題がなければ、退避したものは不要です。
削除してしまいましょう。

rm -rf ~/.git_BACKUP

これで、ソース管理に「保留中の変更」が大量発生している事象は解決しました。

まとめ

VSCodeのソース管理に「保留中の変更」が大量発生する問題は解決できましたでしょうか。

まとめ
  • 原因:Gitリポジトリがホームディレクトリになっていた
  • 対処:誤って作成した.gitを退避・削除する

とにかくGitは「各プロジェクトフォルダ」単位で使いましょう。ということですね。

この記事が誰かの問題解決につながれば幸いです。

お疲れさまでした。

ABOUT ME
タカヒデ
タカヒデ
ITを楽しく勉強中
通信会社の企画職で働く30代 非エンジニアでありながら半分趣味でITエンジニアリングやプログラミングを学習中 IT初心者が楽しいと思えるように発信することを目指しています ↓Xもやっているのでフォローしてね
記事URLをコピーしました