ベストアンサー1
症状
.git/
ローカルにそのフォルダーの下にサブフォルダーがあるかどうかを確認します。
原因
つまり、フォルダ(ローカル)はネストされた Git リポジトリ、そのツリーの SHA1 は「gitlink」(直線の白い矢印が付いた灰色のフォルダー)として記録されます。
するとGitHubで次のような画面が表示されますgitリンク: オブジェクトの SHA-1 は、空のフォルダー名で表される別のリポジトリ内のコミットを参照します。これはネストされた Git リポジトリです。
が表示されている場合はfolder @ xxx
、サブモジュールエントリつまり、自分のリポジトリ.gitmodules
には があり、gitlink に加えて、リモート リポジトリの実際の URL が記録されます。
これは、スーパー プロジェクトがネストされたサブモジュールの作業ディレクトリがあると想定しているコミットのオブジェクト名を表します。
どちらの場合も(フォルダ名が白い矢印、またはfolder @ xxx
フォルダ名が白い矢印そしてバージョン 1.0 の場合、これはネストされた Git リポジトリを表す Gitlink です。つまり、別の Git リポジトリのプレースホルダーなので、空のフォルダーになります。ただし、2 番目のケースでは、その空のフォルダーは特別な.gitmodules
ファイルで参照/表示されます。
解決策(白い矢印を削除する)
フォルダの内容を復元するには:
サブモジュール:
あgit clone --recurse-submodules
サブモジュールの内容をローカルリポジトリに復元します(ネストされたGitリポジトリとは異なり、URLはない記録され、フォルダの内容は空のままになります)
白い矢印はリモート リポジトリに残り、folder @ version
プロジェクトによって参照されているサブモジュール リポジトリの SHA1 が表示されます。
ネストされた Git リポジトリ:
あるいは、そのフォルダの履歴を気にしない場合は、.git
サブフォルダをローカルで削除することもできます(ない.gitmodules
サブモジュール (つまり、メイン リポジトリ内のファイルで参照されていないモジュール) を追加、コミット、プッシュします。
白い矢印が消え、GitHub でそのフォルダーの内容にアクセスできるようになります。
次に、gitlink エントリを削除する必要があります。
git rm --cache client_folder
# without a trailing slash:
# not client_folder/ but client_folder
最後に、そのフォルダーのコンテンツを追加、コミット、プッシュできます。