2014-09-16 3 views
1

У меня есть репозиторий, где я игнорирую весь каталог, однако внутри него есть отдельный каталог, который я хочу быть подмодулем. Так что мой мерзавец игнорировать файл имеет строку,Git Submodules противоречивый gitignore

wp-content/plugins/ 

Я планировал добавить строку

!wp-content/plugins/my-plugin 

Так было бы затем отслеживать только код подмодуль, правильно?

Поэтому я попытался добавить его в качестве подмодуля и получил сообщение «use -f flag». Так я и сделал. Теперь статус git показывает, что плагин, хотя каталог все еще игнорируется.

Означает ли это -f переопределить директивы git ignore? И если так, могу ли я тогда просто опустить! как в моем файле игнорирования и передать все это?

спасибо.

ответ

0

Если это не изменилось с тех пор «Git ignore all except subfolder», ваши игнорирующие правила будут:

wp-content/plugins/* 
!wp-content/plugins/my-plugin 

Обратите внимание, что я не использовал бы слэш (как вы это делали) для my-plugin, так как добавление подмодуль добавит gitlink entry в индекс, который называется my-plugin.

+0

О, так это правильный способ игнорировать весь каталог, чтобы добавить * после окончания? – thatryan

0

Вы смешиваете игнорирование папок и подмодулей, но на самом деле это две разные вещи. Если вы хотите, чтобы этот плагин существовал в вашем репозитории в качестве подмодуля, его не следует игнорировать (поскольку подмодули - разные объекты в вашем репозитории по дизайну).

Что нужно сделать, чтобы исправить эту ситуацию, временно переместить папку my-plugin из хранилища. Затем удалите строку !wp-content/plugins/my-plugin из вашего файла .gitignore, так как он больше не нужен и фиксирует это состояние вашего репозитория.

Теперь убедитесь, что ваш my-plugin находится в отдельном репозитории (как это требуется для его добавления в качестве подмодуля) и добавьте этот подмодуль в ваш основной репозиторий. Это должно делать свое дело.

+0

ОК, поэтому они сделаны двумя разными способами? Добавляя подмодуль, он «перегружает» гитигор всего каталога? Так что мне не нужно явно разрешать это? Также обратите внимание, что я никогда не добавлял! Wp-content/plugins/my-plugin line. Я просто хотел, чтобы это было то, что я собирался сделать ... – thatryan

+0

Это совсем другое. Чтобы объяснить это в ваших словах, да, это будет «отменять» правила в gitignore, но файлы в подмодуле на самом деле не отслеживаются родительским репозиторием. –

Смежные вопросы