リモートGitHubの灰色のアイコンはどういう意味ですか


83

ファイルをgithubにプッシュしたときに灰色のアイコンが表示される理由を教えてもらえますか?アプリディレクトリの横には、モデル、ビュー、コントローラーがあるはずですが、リモートのGitHubではクリックできません。

ここに画像の説明を入力してください

回答:


30

到達不能なリモートロケーションを指すサブモジュールを作成したようです。

この回答を参照してください。そのアイコンが緑色の場合、サブモジュールを指します。サブモジュールが正しく構成されていないため、あなたのケースではグレー表示されていると思います。

それ.gitmodulesが存在しない場合は、削除されている必要があり、サブモジュールにはリモート情報がありません。

にアクセスしappて入力 git remote -vすると、このモジュールがどこを指しているかもわかります。この場所は現在到達できません。

同様のシナリオで、サブモジュールを追加して削除しました.gitmodules。GitHubでの結果は次のようになります。

サブモジュールがありません


git submodule update --initを試したところ、パス 'app'のgitmodulesにサブモジュールマッピングが見つかりませんでした
BC2

git ls-tree --full-tree -r HEADを試しましたが、100644 blob 6628083525c40f2abab01a69c4599d38380b18a5 Rakefile 160000 commit 60b600031853f5f4bbc0a2885caf5085bbf873fc app
BC2

アプリを除くすべてのディレクトリにはblobという単語が含まれています... nアプリ内にそれ以上のディレクトリファイルはありません...一方、アプリ内の実際のプロジェクトでは、Model、View、Controllerなどのディレクトリがまだいくつかあります
BC2

何がcat .gitmodules返されますか?実際のURLを投稿しないでください
Boj 2013年

cat:.gitmodules:そのようなファイルまたはディレクトリはありません
BC2


23

Gitは、内部に.gitディレクトリがあるため、サブモジュールであると見なします。修正するには...

ディレクトリを問題のあるディレクトリに変更しました:

cd <offending git submodule>

その中の.gitディレクトリを削除します。

rm -rf .git

gitキャッシュを更新します。

git rm --cached <offending git submodule>

親ディレクトリに移動します。

cd ..

ディレクトリをgitに追加します。

git add .
git commit -m "Changed submodule to directory"
git push --all

これは私に頭痛を救った
ElroyJetson19年

素晴らしい答え。これらの手順に従うことで、私は多くの混乱を免れました!
ガレン

素晴らしい答えです。これは私を混乱から救いました!
アユブルラハマン

これは、いくつかの代替回答を試した後の最も正しい回答です。ありがとうヒープ
プラトス–子供

最も賛成する必要があります。1つだけ、親ディレクトリに移動してgit rm --cached <>を実行します
Tejas Sharma

20

フォルダ内でgitを初期化したようです。サブフォルダーからgitファイル(rm -rf)を削除し、新しいリポジトリを作成してgitを再初期化します。


3
非常に簡潔な答えです!入って、隠しファイルを有効にし、プロジェクト内の隠しgitフォルダーを削除して、再アップロードしました。灰色のフォルダーアイコンが消え、githubですべてが正常になりました。簡潔で率直な答えをありがとう。
twknab 2016年

1

アプリディレクトリ内ですでにgitを初期化しており、リモートが見つかりません。アプリ内の.gitファイルを削除します。

[app(master)]$ sudo rm -r .git

または、フォルダ内の隠しファイルを表示して手動で実行します。次に、親フォルダーの変更を再コミットして再プッシュします


1
<3つのコピー
アンド

1

私が見つけた最も簡単な方法は、ローカルからフォルダーを削除し、リモートリポジトリを更新することでした。ローカルディレクトリに移動し、誤って設定された.gitサブフォルダを含むフォルダを別の場所(デスクトップなどのローカルリポジトリの外部)に切り取り、問題を修正して後でコピーし直してから、次のコマンドを実行します。

git submodule update

git add --all

git commit --all

git push

これにより、リモートリポジトリでグレー表示されているフォルダが削除されます。次に、フォルダーをローカルファイルに再度コピーし、上記のようにadd --all commit --all git pushを実行します。もちろん、同じ問題を回避するために、誤って設定された.gitフォルダーをサブフォルダーから事前に削除するように注意してください。再び; Linuxシステムでこれを見つけるには、フォルダー内からcntrl-hを使用して、フォルダー内の隠しファイルを表示します。問題の原因となっているサブフォルダーに.gitフォルダーがあり、それを削除するだけで解決するはずです。


0

すでに.gitが含まれているため、灰色で表示されます。つまり、内部にもgitが初期化されています。


私の場合、これは実際には問題でした。フォルダー内に.gitフォルダーがあり、フォルダーのサブモジュールが自動的に作成されるようです。この回答がマークダウンされている理由がわかりませんか?
leoncc 2018

0

私の場合、プロジェクトの親フォルダーにGitリポジトリーをセットアップする前に、Herokuデプロイするときにルートフォルダー(manage.pyがあるフォルダー)のgitリポジトリーを初期化しました。

次に、プロジェクトの親フォルダーに新しいリポジトリを作成すると、モデルビューとコントローラーを処理するルートフォルダーがグレー表示されました。以下は私のために働いた:

  1. 親フォルダリポジトリを削除する
  2. 新しいリポジトリを作成する 既存のリポジトリをインポートするため、「このリポジトリをREADMEで初期化する」チェックせずにます。
  3. manage.pyを含むルートフォルダー内で、次の手順を実行します。

    git remote add origin "github repo link"

    git push-uオリジンマスター

  4. Githubリポジトリを更新すると、すべてのディレクトリが存在するはずです
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.