Що означає сіра піктограма у віддаленому 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.