Що означає сіра піктограма у віддаленому GitHub


83

Хто-небудь може сказати мені, чому у мене є сірий значок, коли я переношу свої файли на github? Біля каталогу додатків повинні бути моделі, подання та контролери, але у віддаленому GitHub я не можу натиснути.

введіть тут опис зображення

Відповіді:


30

Схоже, ви створили підмодуль, вказуючи на недосяжне віддалене місце.

Дивіться цю відповідь . Цей значок, коли зелений, буде вказувати на підмодуль. Я припускаю, що у вашому випадку це сіре, оскільки підмодуль був неправильно налаштований.

Враховуючи, що .gitmodulesцього немає, його потрібно було видалити, залишивши підмодуль без віддаленої інформації.

Якщо зайти appта ввести, git remote -vви побачите, куди вказує і цей модуль. Наразі це місце недоступне.

За подібним сценарієм я додав підмодуль і видалив .gitmodules. Результат на GitHub виглядає так:

відсутній підмодуль


коли я спробував оновити підмодуль git --init, він не повертає мені ніякого відображення підмодуля в gitmodules для шляху 'app'
BC2,

Я спробував git ls-tree --full-tree -r HEAD, і він повертає мені 100644 blob 6628083525c40f2abab01a69c4599d38380b18a5 Rakefile 160000 commit 60b600031853f5f4bbc0a2885caf5085bbf873fc app
BC2

кожні каталоги зі словом згустку , за винятком програми ... п немає ніяких додаткових файлів каталогу в додатку ... в той час як в моєму фактичному додатку проект всередині, є ще кілька каталогів , як модель, View, Controller і т.д.
BC2

що cat .gitmodulesповертається? Не публікувати фактичні URL-адреси
Boj

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

Це врятувало мені головний біль
Елрой

Чудова відповідь. Виконання цих кроків врятувало мені велику плутанину!
Галлен

Чудова відповідь. Це врятувало мене від розгубленості!
Аюбур Рахаман,

Це, безумовно, найбільш правильна відповідь після спроби декількох альтернативних відповідей. Спасибі купи
Платос-Дитина

Має бути найбільш прихильним. Тільки одне, перейдіть у батьківський каталог, а потім виконайте git rm --cached <>
Tejas Sharma

20

Схоже, ви ініціалізували git всередині папки. Видаліть файл git (rm -rf) із підпапки та створіть нове репо та повторно ініціалізуйте git.


3
Дуже стисла відповідь! Я щойно зайшов, увімкнув приховані файли, видалив приховану папку git всередині мого проекту та повторно завантажив - піктограму сірих папок тепер немає, і все добре на github. Дякуємо за стислу та зрозумілу відповідь.
twknab

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

0

У моєму випадку я ініціалізував репозиторій git у кореневій папці (той, що має manage.py) під час розгортання на Heroku перед налаштуванням сховища Git у батьківській папці проекту.

Коли я тоді створив нове репо в батьківській папці проекту, коренева папка, яка обробляє представлення моделей та контролери, була сірою. У мене працювало:

  1. Видалити репо батьківської папки
  2. Створіть нове репо без перевірки "Ініціалізувати це сховище за допомогою README", оскільки ми будемо імпортувати існуюче сховище.
  3. У вашій кореневій папці, у якій є manage.py, виконайте такі дії:

    git remote add origin "github repo link"

    git push -u master master

  4. Оновіть репозиторій Github, і всі ваші каталоги повинні бути присутніми
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.