1. ホーム
  2. git

[解決済み] GitHubのフォルダーに白い矢印が表示されている

2022-03-10 13:54:41

質問

最近githubにプッシュしたのですが、フォルダのひとつに白い矢印が表示されています。

で、そのフォルダをクリックしても開きません。ローカルマシンではコンテンツがあるのですが、githubではアクセスできないのです。これは何を意味するのでしょうか?

どうすればいいですか?

症状

ローカルで .git/ のサブフォルダを作成します。

原因

それはつまり、(ローカルにある)フォルダが ネストされた Git リポジトリ そのツリーの SHA1 は "gitlink" として記録されています(灰色のフォルダーにまっすぐな白い矢印)。

そうすると、GitHubでは次のように表示されます。 ギットリンク : オブジェクトのSHA-1は、空のフォルダ名で表される別のリポジトリのコミットを参照しています。これはネストされたGitリポジトリです。

もし folder @ xxx であれば、それは サブモジュールエントリー ということは、自分自身のリポジトリに .gitmodules には、gitlink に加えてリモートリポジトリの実際の URL も記録されます。
これは、スーパープロジェクトがネストしたサブモジュールの作業ディレクトリがあると想定しているコミットのオブジェクト名を表します。

どちらの場合も(白い矢印にフォルダ名、または白い矢印に folder @ xxx フォルダ名 バージョン) の場合、それはネストした Git リポジトリを表す Gitlink であり、別の Git リポジトリのプレースホルダー、つまり空のフォルダーとなります。しかし、二番目のケースでは、その空のフォルダーは特別な .gitmodules ファイルを作成します。


解決方法(白い矢印を消す)

そのフォルダの内容を復元するために。

サブモジュールを使用します。

A git clone --recurse-submodules を実行すると、そのサブモジュールの内容がローカルリポジトリに復元されます (ネストした Git リポジトリでは、その URL は ではなく が記録され、フォルダの中身は空のままとなります)

白い矢印は、リモートリポジトリに残っていて folder @ version には、あなたのプロジェクトが参照しているサブモジュールリポジトリのSHA1が表示されます。

ネストされたGitリポジトリ。

あるいは、そのフォルダーの履歴を気にしないのであれば、ローカルでその .git サブフォルダ(それが ではない サブモジュールであることを意味します。 .gitmodules ファイルをメインリポジトリに追加します)、追加、コミット、プッシュします。
すると白い矢印が消え、GitHub 上でそのフォルダの内容にアクセスできるようになります。