Visual Studio に付属のチームエクスプローラーからGitでfetchしても新しいファイルがソリューションエクスプローラーに表示されない

発端

つい先日、GitHubにプライベートリポジトリを作成して、Visual Studioのチームエクスプローラーからまずローカルリポジトリの内容をpushしました。

今、ローカルリポジトリとリモートリポジトリの内容は全く同じ状態になっています。

外でパソコンが使えないときに、GitHubにログインして、ソリューションの中のWorking.csのコードを少し編集し、さらにそのソリューションにHelper.csという新しいファイルも追加しました。(←リモートリポジトリでの操作)

この段階で、リモートリポジトリに新しいCommitがある状態で、ローカルリポジトリの方は更新されていません。

次にVisual Studioでまたローカルリポジトリを開き、fetchしたのですが、一部の変更が反映されませんでした。

  • もともとソリューション中にあったWorking.csに加えた変更は適用
  • GitHubで追加したHelper.csがなぜかソリューションエクスプローラーに表示されない

状態

Helper.csの中のHelperクラスをWorking.csの中のWorkingクラスから参照するコードを書いていたのですが、クラスが存在しない旨のコンパイルエラーになってしまいました。
なぜかfetchも成功しているのに、Helper.csがありませんでした。。。

解決

CommitをReverseしたりReverseしたCommitをまたReverseしたりしましたが、最終的には、エクスプローラーでソリューションのディレクトリを開いたところ、Helper.csがありました。
つまり、プロジェクトに該当のHelper.csが含まれていないだけで、ファイル自体はありました。ありゃりゃあああ。

結果的には、ソリューションエクスプローラーで[すべてのファイルを表示]して、該当のHelper.csを右クリック→[プロジェクトに含める]で解決しました!

まとめ

ただしくGitのリポジトリからfetchされているはずなのに新しく追加したファイルだけがソリューションエクスプローラーで表示されないときはプロジェクトにそのファイルが含まれていないだけな可能性が高いです。さらにいうと、今回の場合、Visual Studioでファイルを追加したのではなくGitHubで直接ファイルを追加したためプロジェクトファイル(〇〇.csproj)に変更が適用されていませんでした。

今度から気を付けます笑

コメント